java中unsigned long的等价物是什么
发布时间:2020-05-24 20:51:11 所属栏目:Java 来源:互联网
导读:我为我的项目编写了以下三个函数: WORD shuffling(WORD x){// WORD - 4 bytes - 32 bits//given input - a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15- b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15//
|
我为我的项目编写了以下三个函数: WORD shuffling(WORD x)
{
// WORD - 4 bytes - 32 bits
//given input - a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15- b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15
//output required - a0,b0,b7 - a8,a15,b15
x = (x & 0X0000FF00) << 8 | (x >> 8) & 0X0000FF00 | x & 0XFF0000FF;
x = (x & 0X00F000F0) << 4 | (x >> 4) & 0X00F000F0 | x & 0XF00FF00F;
x = (x & 0X0C0C0C0C) << 2 | (x >> 2) & 0X0C0C0C0C | x & 0XC3C3C3C3;
x = (x & 0X22222222) << 1 | (x >> 1) & 0X22222222 | x & 0X99999999;
return x;
}
WORD t_function(WORD n)
{
WORD t_result=0;
WORD64 var = 2*((n*n)& 0xFFFFFFFF)+n; // (n*n mod FFFFFFFF) becomes a 32-bit word
t_result = (WORD) ((var)& 0xFFFFFFFF);
return t_result;
}
WORD lfsr(WORD t_result)
{
WORD returnValue = t_result;
WORD flag = 0;
flag = returnValue & 0x80000000; // Checking if MSB is 1 or 0
// Left shift the input
returnValue = returnValue << 1;
// If MSB is 1 then XOR the reult with the primitive polynomial
if(flag > 0)
{
returnValue = returnValue ^ 0x4C11DB7;
}
return returnValue;
}
WORD – 无条件的长 此代码位于“c”中.现在我必须在java中实现它.在编译和运行代码时一切都很好.但是在这里我使用unsigned long而在java中我使用了int因为我一次只运行32位.问题是“当在java中实现结果超出int的范围时,输出被偏离,并且它将不是c代码的相同输出.是否有任何解决我的问题的方法来替换无符号长范围值在java中 解决方法简而言之,java中没有未签名的数据类型.在C语言中,C在32位系统上是32位,但是java的长度是64位,因此您可以使用它进行替换(至少它可以解决溢出问题).如果您需要更宽的整数,请使用BigInteger类.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Java文件读写操作具体代码实现
- java – JMeter Scheduler中的开始时间和结束时间
- java – SEVERE:无法调度事件:Eventbus com.google.commo
- java – 为什么FilterInputStream和FilterOutputStream在它
- gmail – keytool错误:java.lang.Exception:输入不是X.50
- Java stringBuilder的使用方法及实例解析
- java – 如何启用Hystrix DEBUG级别日志记录
- java – OpenCV Mat处理时间
- java – 为什么Optional不实现供应商?
- Java – 同步ArrayList的最有效方法是什么?
