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

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

5个回答

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

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

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java怎么样将键盘输入的转换为整型?
import java.lang.*;rnrnclass IOShuRurn public static void main(String args[]) throws java.io.IOExceptionrn rn int a,b,sum=0;rn a=5;rn sum=0;rn System.out.println("Please input a :\n");rn b=System.in.read();rn rn a=++b;rn sum=a+b;rn System.out.println("The a is:"+a);rn System.out.println("The b is:"+b);rn System.out.println("The sum is:"+sum);rn rnrnrn输入4后得到的答案是53,53,106rn而我想要的是5,5,10rn怎么改?
二进制128位整数运算
GCC提供了两种128位整数类型,分别是__int128_t和__uint128_t,分别用于声明有符号整数变量和无符号整数变量。 有关GCC的文档参见:Using the GNU Compiler Collection (GCC)。 这里给出了样例程序,是有关类型__int128_t和__uint128_t的。从计算可以看出,这两个类型都是16字节的,类型__...
128位二进制如何转化为十六进制?
例如:CString str= "01011111110001111111111111100000000000000000000111";rn它对应的十六进制CString strOut怎么求得?
将二进制转换为16进制
一个简单的将二进制数值转换为十六进制程序
将二进制转换为十六进制
    //将二进制转换为十六进制     public static void sixteen(int number) {         //将二进制的4位转换为十六进制的1位 形成字符串         int num = number;         String s = "";;         for(int i=0;i<8;i++){             int n =...
位运算实现将十进制转换为二进制
#include rnvoid exchan(int b); rnint main() rn rnint a; rnprintf("input a="); rnscanf("%d",&a); rnprintf("%d的二进制形式输出\n",a); rnexchan(a); rnreturn 0; rn rnvoid exchan(int b) rn rnint i,t; rnt=1; rnt=t<<31; rnfor(i=1;i<=32;i++) rn rn putchar(b&t?'1':'0'); rn b=b<<1; rn rn if(i%8==0) rn printf(" "); rn rnprintf("\n"); rn rn请问exchan()里面怎样理解?计算机是怎么运算的
leetcode 461. 汉明距离【二进制计算】
执行用时 :0 ms, 在Hamming Distance的C++提交中击败了100.00%的用户 内存消耗 :8.3 MB, 在Hamming Distance的C++提交中击败了73.26%的用户 class Solution { public: int hammingDistance(int x, int y) { int t=x^y; ...
Python二进制串转换为通用字符串
Python中二进制串转换为通用字符串
如何将二进制的串转换为字符串
例如char *p="abcd“;那将*P转换为二进制字符串就是:01100001011000100110001101100100,rn[code=C/C++]#includernvoid main()rnrn char *s="abcd";rnunsigned char *p=s;rnint i=0;rnfor(;*p!=0;p++)rnrn for ( i=7;i>=0;i--)rn rn unsigned char a=0;rn unsigned char b=0x01;rn a=( (*p)>>i )&b; /*可见内循环*p的值是不变的 */rn printf("%u",a);rn rnrn//这是将*s转换为二进制的代码[/code]
java整型128陷阱
public static void main(String[] args) {         Integer a = 127;         Integer b = 127;         Integer c = 128;         Integer d = 128;                  System.out.println(a==b);         System....
计算汉明距离java
public static int hammingDistance(int x, int y) { int mark=0; int a=x^y; String b=Integer.toBinaryString(a); for(int i=0;i;i++){ if (b.charAt(i)=='1') mark++;
java 整型128陷阱
public class XianJing { public static void main(String[] ages) { Integer vv1 = 127; Integer vv2 = 127; Integer vv3 = 128; Integer vv4 = 128; System.out.println( vv1== vv2 ); System.out.println...
【Java基础】整型转换为二进制字符串(无符号右移)
整型转换为二进制字符串(无符号右移)整型转换为二进制字符串,可以使用除2留余法,不过使用无符号右移更加方便。将整型数字转换为二进制字符串,一共32位,不舍弃前面的0/** * 将整型数字转换为二进制字符串,一共32位,不舍弃前面的0 * @param number 整型数字 * @return 二进制字符串 */ private String get32BitBinString(int n
C# 将整型数组元素转换为字符串
C# 将整型数组元素转换为字符串.别忘了给评分!
怎样将 math.random()转换为 整型(int)
怎样将 math.random()double 型转换为 整型(int)
转换为整型
我现在想在delphi里 将一个带小数的值 转换为整形。 例如: 将7.1—>8 、7.6->8 。其不遵循四舍五入规则。请问各位高手 我该用什么函数去做?rn
位运算之十进制转二进制 十六进制转二进制
利用位运算进行进制间的转换#include #include int inttoBin(unsigned int num) { int i; unsigned int mask = 0x80000000; for(i = 0; i < 32; i++) { if((num & mask) == mask) { printf("1"); } else {
IP转换为整型
import javax.servlet.http.HttpServletRequest; /** * IP与十进制整数相互转换 */ public class IpConvert { /** * 获取客户端浏览器的ip地址 */ public static String getIpAddr(HttpServletRequest request) { String ip
461. 汉明距离 位运算
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y &amp;lt; 231. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置 class Solution...
【leetcode】461 汉明距离(位运算)
题目链接:https://leetcode-cn.com/problems/hamming-distance/ 题目描述 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y &lt; 2^31. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 ...
串转换为数值问题
我看有的代码是这样的rnCString str("123");rnint i = atoi(str.GetBuffer(10));rnstr.Release.Buffer();rnrn但为何不直接这样呢?rnCString str("123");rnint i = atoi(str);
如何構造128位整型?
[gsm@fedora ~]$ cat a.crn[code=C/C++]rn#include rn#include rn#include rnrnint main(int argc, char **arg)rnrnuint64_t n=UINT_MAX;rnprintf("%ju\n", n);rnreturn 0;rnrn[/code]rn[gsm@fedora ~]$ gcc -m32 a.crn[gsm@fedora ~]$ ./a.outrn4294967295rn[gsm@fedora ~]$ gcc -m64 a.crn[gsm@fedora ~]$ ./a.outrn4294967295rnrn這裏即使把程序編譯為32位,也能保持uint64_t是64位整型。這是如何做到的呢?如果我想構造128位整型,該如何做呢?rn
461. 汉明距离--位运算
题目描述: 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y &amp;lt; 231. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置。 题目分析...
LeetCode461. 汉明距离(位运算)
https://leetcode-cn.com/problems/hamming-distance/ 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y &lt; 231. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ ...
将文本转换为二进制和将二进制转换为文本的C#代码
在C#中,有没有提供一种方法,可以将文本转换为二进制,同样要将二进制转换为文本?
将十进制ip转换为二进制显示
将十进制ip转换为二进制显示。如输入128.1.2.128,转换为10000000.00000001.00000010.10000000#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt; //将IP地址转化为二进制 void bin(int s){ int c[8]={0}; int i=7,tmp,j; while(s!=0){ tm...
顺序栈——将十进制转换为二进制
一、        实验内容 1.        自己确定结点的数据类型和问题规模:建立一个顺序栈,实现栈的压栈和出栈操作 2.        利用栈实现由十进制到二进制的转换   二、 源代码 #include using namespace std; const int MAX = 10; class Line { private: int data[MAX]; int top
链栈将十进制转换为二进制
一、        实验内容 1.        自己确定结点的数据类型和问题规模:建立一个链栈,实现链栈的压栈和出栈操作 2.        利用链栈实现由十进制到二进制的转换 二、源代码 #include using namespace std; class Line { private: struct Node { Node*next; int data; }; No
C++将二进制转换为十进制
/*题目描述 已知一个只包含 0 和 1 的二进制数,长度不大于 10 ,将其转换为十进制并输出。 输入描述 输入一个二进制整数n,其长度大于0且不大于10 输出描述 输出转换后的十进制数, 占一行 样例输入 110 样例输出 6*/ #include #include using namespace std; int main(){ str
将IP地址转换为二进制表示
string convert(char* cur, int size) { char byte[10] = {0}; memcpy(byte, cur - size, size); unsigned int value = atoi(byte); char final_value[9] = {0}; for (int i = 0; i < 8; i++) {
将byte转换为二进制字符串形式
String s1 = String.format("%8s", Integer.toBinaryString(b1 &amp; 0xFF)).replace(' ', '0');
将十进制转换为二进制和十六进制
#includeint main(){int a,i,j,m;int arr[16]={0};printf("输入一个整数:\n");scanf("%d",&a);printf("十六进制=%x\n",a);printf("八进制=%o\n",a);printf("二进制数为:\n");for(i=0;i{m=a%2;j=a/2;a=j;arr[i]=m;}for(i=15;i>=0;i--){p
python将二进制转换为十进制
例:将1110110转换为十进制数 解:先将其转换为字符串,再使用int函数,指定进制转换为十进制。 print(int("100111",2))
怎么将二进制转换为字符
怎么将一个图片的二进制数据流转换为普通的字符表达?rnrn我现在是要取出二进制里面的第几位数来跟定义好的字符串,比如"abc"来比较。rnrn请问我该怎么实现呢。
将二进制转换为n进制
将输入的0和1数字序列表示的二进制数转换为八进制、十六进制数。 (2)功能要求 ①将输入的0和1数字序列存放到数组中。 ②从终端输入要转换的进制。 ③将转换后的结果保存到数组中,并以适当的形式输出。 ④若要转换成任意进制数,程序应如何编写? #include<stdio.h>int main() { char a[30]; char string[30]
将十进制转换为二进制、八进制、十六进制
将十进制转换为其它进制时比较复杂,整数部分和小数部分的算法不一样,下面我们分别讲解。 整数部分 十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法。具体做法是: 将 N 作为除数,用十进制整数除以 N,可以得到一个商和余数; 保留余数,用商继续除以 N,又得到一个新的商和余数; 仍然保留余数,用商继续除以 N,还会得到一个新的商和余数; …… 如此反复进行,每次都保留余数,用商接着除...
二进制转换为十六进制
二进制转换为十六进制 用栈和队列解决的 嘎嘎
转换为二进制的补码
为了理解位操作操作符,首先需要了解整数是如何用二进制表示的。我们在第2.4节讨论了这一点——整数,并将在这里展开。 考虑一个正常的十进制数,例如5623。我们直观地理解这些数字是指(5×1000)+(6×100)+(2×10)+(3×1)。因为有10个十进制数,所以每个数字的值增加了10倍。 二进制数的工作方式相同,只是因为只有2个二进制数(0和1),每个数字的值增加了2倍。就
float转换为二进制
float在计算机中占32-bit,从左到右为:符号位(1-bit)、指数位(8-bit)、底数位(23-bit)。 说明:符号位:负1,正0             指数位:在得到指数后,+127             底数位:移动小数点到只剩1位整数,小数点左侧换为二进制,小数点右侧从左到右位的权重分别为:1/2、1/4、1/8...换算完后,省略掉第一个数字1
整形转换为二进制?
inttobin()?对吗?
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法