JAVA 将128位二进制串转换为整型,在进行位运算,计算汉明距离

JAVA,现有两个128位的二进制串,我要计算它们之间的汉明距离,但在Java中位运算好像都需要事先转换为整型。但是128位的二进制数也太大,int并不能满足要求,用长整型好像也不太行。求大神指导。

0

5个回答

用4次整数计算,先算最低32位,并且判断是否溢出,溢出把进位/借位放进来,再算33~64,以此类推。

0
0
Fan_Xuan
夜的那种黑丶 这种性能太差了,数据库里5千万条记录,爆炸了额
一年多之前 回复

可以将128位的二进制数转成BigInteger来进行计算

0

能否利用数组&进位退位的方式解决呢?例如int[4]或者BigInteger(这个也是基于数组)

0
baij1230
baij1230 考虑到java没有无字符型的变量,还是直接转化为BigInteger吧。
一年多之前 回复

用了应付大数的算术运算,jdk提供了大数据BigInteger等类支持这样的计算。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
算法:用位运算符将十进制转为二进制
用位运算符将十进制转为二进制nnnn代码:nnn#include <stdio.h>nvoid change_binary(char,char []);nvoid print_binary(char []);nint main(void)n{n char binary[8],decimal;n decimal=-2;n change_binary(decimal,binary);n ...
二进制128位整数运算
GCC提供了两种128位整数类型,分别是__int128_t和__uint128_t,分别用于声明有符号整数变量和无符号整数变量。n有关GCC的文档参见:Using the GNU Compiler Collection (GCC)。n这里给出了样例程序,是有关类型__int128_t和__uint128_t的。从计算可以看出,这两个类型都是16字节的,类型__uint128_t是128位的。
二进制转换及位运算
------- android培训、java培训、期待与您交流! ----------nnnnnn进制之间的转换与位运算n二进制、八进制、十进制与十六进制,它们之间的区别在于数运算时逢几进一位。比如说二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。n①二进制n1.二进制转十进制: n方法:把二进制数按权展开、想加即得十进制数。n计算过程(二进制数 111000
leetcode_461. Hamming Distance 计算汉明距离,按位异或运算,计算整数的二进制表示中1的个数 java
题目:rnrnrnThe Hamming distance between two integers is the number of positions at which the correspondingrn bits are different.rnrnGiven two integers x and y,rn calculate the Hamming distance.rnrnNote:
C语言巧妙运用位运算十进制转化为二进制输出
巧妙运用位运算十进制转化为二进制输出,正数负数都适合代码:#include<stdio.h>n#include <stdlib.h>n#include <string.h>nint main()n{n int numb;n char *buff = (char*)malloc(sizeof(char));n int count = 0;n scanf("%d",&numb);
128位二进制数字加减
#include &amp;lt;stdio.h&amp;gt;n#include &amp;lt;stdint.h&amp;gt;n#include &amp;lt;arpa/inet.h&amp;gt;nnnvoid ipv6_addition(unsigned char *ipaddr, int n)n{n    uint32_t *p = (uint32_t *)ipaddr;n    int64_t tmp = 0, tmp2 = 0...
ORBSLAM2计算描述子距离——C++ 位操作得到二进制32位int值中有多少个1
看ORB-SLAM2时算描述子之间的距离时看到的神奇的位操作,特此记录一哈。rn unsigned int v = *pa ^ *pb; rn v = v - ((v &amp;amp;gt;&amp;amp;gt; 1) &amp;amp;amp; 0x55555555);rn v = (v &amp;amp;amp; 0x33333333) + ((v &amp;amp;gt;&amp;amp;gt; 2) &amp;amp;amp; 0x33333333);rn dist
位运算将十进制转化二进制
package lianxi.zhengze.com;rnrnrnimport java.util.Scanner;rnrnrnpublic class ErJinZhi {rnrnrnpublic static void main(String[] args) {rn//1、取得十进制值rn//2、while循环算法转换rnScanner sc = new Scanner(System.in);
c++整型与二进制的相互转化
#includen#includen//#includenusing namespace std;nnstring str="";nint BinToInt(string str)n{n int n = 0;n for (int i = 0; i < str.size(); i++)n {n n = n * 2 + (str[i] - '0');n }n return (int)n;n}nstr
十进制转换成二进制示例代码位运算
十进制转成二进制,最快的方法就是位运算rnrn十进制数528的二进制码为:0000001000010000rn将其取反(求反码)后的结果:1111110111101111rn将反码加一(求补码)后结果:1111110111110000rn所以,-528的二进制码为1111110111110000rnrn#define _CRT_SECURE_NO_WARNINGSnn#include nnint
C++编写128位整数运算源码
通过2个64位INT整数实现的128位整数运算,可容易的扩展到更高位数的整数运算。
MySQL--巧妙利用二进制位运算表达“非此即彼”的信息
一、业务需求:nn业务涉及的一个表里,有多个“非此即彼”型字段n整合在一个字段里,用二级制位来表示多个信息nn二、直接小demon2.1 创建测试类,比较性能和实用性nCREATE TABLE `goods_test` (n `id` int(11) NOT NULL AUTO_INCREMENT,n `goods_tag` bit(8) DEFAULT NULL,n `tag` varch...
Java通过位运算实现10-16进制转换
import java.util.*;nnnpublic class Hexadecimal n{npublic static void main(String[] args)n{nchar[] contain = new char[100];nint N,cou;nScanner cin = new Scanner(System.in);nwhile(cin.hasNextI
Python 位运算及二进制基础知识
来补点基础知识,这篇讲的是位运算n二进制实际上就是用10进制的数的每一位数字的2的幂数n来看例子:nnnnnnn然后再python的操作中,只要在数字前面加上0b的字符,就可以用二进制来表示十进制数了。
Erlang(8):二进制型与位语法
大多数情况下,二进制型里的位数都会是8的整数倍,因此对应一个字节串。rn如果位数不是8的整数倍,就称这段数据为位串。rn二进制型的编写和打印形式是双小于号和双大于号之间的一列整数或字符串rn2> >.n>n3> >.n>rn操作二进制型rnbinary模块rnlist_to_binary(L)->B 把io列表(iolist)L里的素有元素压扁后形成的二进制nsplit_binary(Bin,Po
二进制的位运算
java中的位运算
【Java基础】整型转换为二进制字符串(无符号右移)
整型转换为二进制字符串(无符号右移)整型转换为二进制字符串,可以使用除2留余法,不过使用无符号右移更加方便。将整型数字转换为二进制字符串,一共32位,不舍弃前面的0/**n * 将整型数字转换为二进制字符串,一共32位,不舍弃前面的0n * @param number 整型数字n * @return 二进制字符串n */nprivate String get32BitBinString(int n
二进制的位运算详解
位运算:rn优先级8-10等 次于等于判断符和加减运算,优于逻辑与非rn一.按位与运算rn符号表示: “&”rn运算过程:rn①   将数转化为二进制(实际机器操作中本身就是二进制,这里的意思是人工计算)rn②   每一位都进行如下运算: rna)      1与1与运算得1rnb)      1与0(0与1)与运算得0rnc)       0与0与运算得0rn两个数按位进行或运算特点有:rn1.
将一个数的二进制位模式从左到右翻转并输出
题意举例如果这个数是25,它的二进制为0000 0000 0000 0000 0000 0000 0001 1001 翻转后的二进制序列是             1001 1000 0000 0000 0000 0000 0000 0000它所表示的数是 2550136832题意分析:法一:根据二进制转换为十进制的方法;通过位运算取出25的每一位二进制数,取出第一位将这个数乘以2^31,第二个数
(基础四)进制转换,输出整型数值低四位二进制数据
public class LowFourBit { public static void main(String[] args) { //十进制转换成二进制输出,即输入一个十进制数,然后将其以二进制的形式输出。n String str = Integer.toBinaryString(15);n System.out.println("15的二进制为:
把整形数转化为二进制数输出并计算其中一的个数 怎么把负数转化为二进制数?
计算一个数二进制中一的个数,并把这个数对应的二进制序列输出。
使用位运算转换大小写
大小写字母的ASCII码差值为32, 32是2的5次方, 因此如果将ASCII的值使用二进制编码表示会不会有奇特的关系呢? n看看如下列表n chn decn binn CHn decn bin an 97n 0110 0001n An 65n 0100 0010n bn 98n 0110 0010n Bn 66n 0100 0010n cn 99n 011
位运算符(对二进制的运算)
位运算rn左移 &amp;amp;lt;&amp;amp;lt;rn3&amp;amp;lt;&amp;amp;lt;1=6 32(1)=6 ;3&amp;amp;lt;&amp;amp;lt;2=12 32(2)=12rn左移就是乘以2的次幂运算,移几位就是几次幂rn弊端:只能操作2的倍数。rn右移 &amp;amp;gt;&amp;amp;gt;rn右移就是除于2的次幂运算,移几位就是几次幂rn右移时,原最高位是什么空位就补什么。rn无符号右移 &amp;amp;gt;&amp;amp;
关于java位运算符&,~,^,|,<<,>>的整理(包含二进制与十进制的转换)
要讲java一些奇奇怪怪的运算符号之前,必须先了解二进制,因为这些看不懂的运算符都是基于二进制运算的n计算机里二进制的运算,往往比十进制运算来的快。n首先了解下转换规则(相互转换):nn转码之前,有一些名词概念:n1、原码n一个正数,按照绝对值大小转换成二进制数,称为原码n2、反码n将二进制数按位取反,所得的新二进制数称为原二进制数的反码n其实就是把原码中的0变为1,1变为0
32位整数转二进制字符串算法
只能说这个工具类太常用了,本人经常需要对比两个数字的二进制形式,jdk自带的方法又会把前面为零的那一部分给截掉,不方便比较,所以粘贴此类出来作为备忘
java位运算(一),了解二进制与八进制,十进制以及16进制的转换
二进制与十六进制怎么转换的 n二进制与八进制的转换
Python的二进制数位运算,计算汉明距离(Hamming Distance)为例
Python的二进制数操作,计算汉明距离(Hamming Distance)为例nn最近发现了LeetCode这个好网站,做了几道题,今后刷LeetCode学习到的新知识我都尽量抽时间记录下来,同时分享给大家。nnnn今天就从LC上一道题说起:nnn Given two integers x and y, calculate the Hamming distance.nnnHamming dis
LeetCode:求两个整数的汉明距离
The Hammingn distance between two integers is the number of positions at which the corresponding bits are different.nnGiven two integers x and y,n calculate the Hamming distance.nn该题即求两个整数的汉明距离,
IP地址与无符号整数值相互转换
方法1:rnIP地址转换为整数:比如"192.168.1.254",以点为分割,将192 168 1 254保存在一个int a[4]数组里,rn然后通过unsigned int nResult = (a[3] rnrn整数转换为IP地址:把这个整数转换成一个无符号32位二进制数。从左到右,每八位进行一下分割,rn得到4段8位的二进制数,把这些二进制数转换成整数rn#include n#inclu
位运算之十进制转二进制 十六进制转二进制
利用位运算进行进制间的转换#include n#include nnint inttoBin(unsigned int num)n{n int i;n unsigned int mask = 0x80000000;n for(i = 0; i < 32; i++)n {n if((num & mask) == mask)n {n printf("1");n }n n elsen {
位运算与字母大小写转换
声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。rnrn    在读王爽老师的《汇编语言》时,看到了用and 和or指令处理字母大小写转换的例子。and 和or是汇编语言中按位与和按位或操作的指令,对应C语言中的&和|操作。本文把这个例子的C语言版在这里重复一下,以便理解和扩充位运算的应用。rn    我们知道大小写字母的ASCII码值差32,因此我们通常采用直接加减32的方法
通过移位把十进制转换成二进制的一个尝试
目的:将一个十进制数x转化成二进制数并打印出来。 n主要思路:在我的机器上,一个short变量占据两个字节,连续的十六位,先定义一个short型变量i,然后将其分为两个八位的部分(s,(s+1)),用指针操作这两部分,给高地址的八位赋值为0,低地址的八位赋值为x,这样,要转换的数就以二进制形式储存在s所指向的八位里面。然后将i左移一位,那么x的二进制中的最高位将进入s+1的二进制最低位,此时,获取s
java基于二进制位运算的权限管理
1,什么是位运算nn nn什么是位运算nn主要是使用到“位运行符”操作,&位与运算符,| 位或运行符。参与运算的如果是10进制数,则会被转换至2进制数参与运算,然后计算结果会再转换为10进制数输出n.2 ^ 0 = 1,相应2进数为“0001”(这里^我表示成“次方”,即:2的0次方,下同)n2 ^ 1 = 2,相应2进数为“0010”n2 ^ 2 = 4,相应2进数为“0100”n2 ^ 3 =...
位运算笔试练习——判断两个整数(32位)的二进制表达有多少个位不同?
实习生笔试题 n问题引入1、二进制表达方式——位运算 n2、有多少位不同——好像只能一位一位的取比较 n3、如何取得一个数的每一位呢? n4、比较完一位之后,能否把这一位去掉,比较剩下的,然后重复整个过程呢?思考一:判断一个整数二进制表达中有多少位是1?直接上——a = a & (a - 1) n这个表达式的意思是:将a的二进制表达中最右边的1(包括1)后面的位变成0; n看图很容易理解: n这样就
二进制比特位运算
1. 基本运算nnn截断保留后 k 位,比如 83 == 0x0101 0011 保留后 5 位,即为 0x0001 0011 == 19 nx &amp;amp;amp; (pow(2, k)-1)nx &amp;amp;amp; 0x1fna 的第 k 位清零:a &amp;amp;amp;= ~(1 &amp;amp;lt;&amp;amp;lt; k)na 的第 k 位置 1:a |= (1 &amp;amp;lt;&amp;amp;lt; k)n...
算法练习笔记(十七)——汉明距离的计算
汉明距离指的是两个数字在二进制的情况之下,相互转化要经过几位的变换rn题目地址:https://leetcode.com/problems/total-hamming-distance/#/descriptionrn题目:Total Hamming Distancern描述:rnrnrnThe Hamming distance between two integers is the numberr
java_位运算加法_8位二进制
package algorithm;rnimport java.util.Scanner;rn/**将二进制字符串转为int   例如00000111转化成int  7而不是111*/rn/**rn * @author: Averyrn * @description: 八位二进制加法——题目来自技术问答我回答了他的问题觉得有必要,于是保存下来,本想放在code里但是觉得在里面看代码不是很方便rn 
给定两个整数A和B,把A变为B需要改变多少位(bit)?
题目的意思就是,如何判断A和B的二进制表示中有多少位(bit)不一样?        这是编程之美当中一道练习题,我也就邯郸学步的想了一个算法:rn        1. 先做位与运算  A &amp;amp; B, 得到结果C;rn        2. 接着做位或运算 A | B,得到结果D;rn        3. 再做一次异或运算,不过操作的数不是 A 与 B,而是 C ^ D , 得到结果E;rn ...
位运算---只使用位运算实现整数的加减乘除
【题目】  给定两个32位整数a和b,可正、可负、可0.不能使用算术运算符,分别实现a和b的加减乘除。【要求】  如果给定的a和b执行加减乘除的某些结果本来就会导致数据的溢出,那么你实现的函数不必对那些结果负责。【基本思路】 加法运算  使用位运算实现加法运算主要分为两个部分。先计算完全不考虑进位进行相加的结果,再计算只考虑进位的产生值。将两个结果相加就是最终的结果。  例如: n  a:    0
Java二级操作题 输入一个十位数的整数 转换为二进制
nnnn//打印无符号整数位nimport java.awt.*;nimport java.awt.event.*;nimport javax.swing.*;nnpublic class Java_3 extends JFrame {n public Java_3(){n    super( &quot;打印无符号整数位&quot; );n    Container c = getContentPane();n  ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java位运算学习 java进行深度学习