- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了好玩,我一直在用 java 实现 DES 算法。 (好吧,实际上并没有那么有趣)。在该算法中,您处理 64 位数据 block ,我想:嘿,这太完美了,让我们使用“long”来存储我的二进制数据。
然后我遇到了一个严重的麻烦,这让我很生气:假设你 build 了一个长的,像这样:
long value = 785537;
假设您想将值的最高有效位设置为 1,您可以这样做:
value |= 0x8000000000000000l;
很简单,对吧?但它根本不起作用。 Java再改一点也没问题,就是说
value |= 0x7000000000000000l;
会起作用。但如果它是最重要的位,它将不起作用。
为什么?有什么方法可以实现我想要的吗?
预先感谢您的回答。
编辑:
这是我编写的代码示例,以二进制形式显示 long :
public static void printBits(long input){
StringBuilder builder = new StringBuilder();
for(int i = 0; i < 64; i++){
if((input & (0x1l << i)) != 0){
builder.append('1');
} else {
builder.append('0');
}
}
System.out.println(builder);
}
如果我这样做:
long val = -1;
printBits(val);
它将按预期打印“111111111111111111111111111111111111111111111111111111111111110”。如果我然后输入:
val |= Long.MIN_VALUE;
printBits(val);
或者
val |= 0x8000000000000000l;
printBits(val);
它还打印“11111111111111111111111111111111111111111111111111111111111110”...
如果那么做下面的测试:
(val & 8000000000000000l) != 0;
这是假的...
最佳答案
这应该有效:
public class LongMsb {
public static void main(String[] args) {
long value = 785537;
System.out.printf("%016x\n", value);
value |= Long.MIN_VALUE;
System.out.printf("%016x\n", value);
}
}
使用
value |= 0x8000000000000000l;
或
value |= 1L << 63;
代替
value |= Long.MIN_VALUE;
也可以工作并且可能更具可读性。
两者都打印以下内容:
00000000000bfc81
80000000000bfc81
关于Java int 和 long : how to change the most significant bit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8466521/
我已经在线阅读了描述大端字节和小端字节的描述。但是,它们似乎基本上都以相同的方式读取,并且我仍然对“最大”和“最小”有效字节的实际实现感到困惑。我知道,小字节序值首先评估“最低有效”值,而在字节序大时
我已经计算了两个模型实验之间的温差。不同之处在于2D矩阵(长×长)。我想找出温差在95%显着水平上具有统计学意义的网格点,这是基于学生使用MatLab进行的t检验。。现在,我使用了MATLAB中的Tt
我试图在 R 中分析一些嘈杂的时间序列数据。这些数据基于动物的 CO2 排放,它们显示出一种我想表征的循环周期性。我想检验以下假设: H0:没有循环 CO2 排放(即不超过随机)。 H1:有一种循环或
我以前在这里寻求帮助的经历很丰富,我希望能再次获得帮助。 我正在估计一个相当大的混合效应模型,其中一个随机效应具有超过 150 个不同的级别。这将使标准的毛毛虫图变得非常难以理解。 如果可能的话,我想
想要用字符串标签替换我的数据框的某些数字列中的 NA -“不重要”。我尝试了以下方法,但出现错误 library(dplyr) library(tidyr) df_inu % mutate_a
情况1: 在主页上: script(src="angular.js") script(src="ember.js") script(src="react.js") script(src="knocko
想要用字符串标签替换我的数据框的某些数字列中的 NA -“不重要”。我尝试了以下方法,但出现错误 library(dplyr) library(tidyr) df_inu % mutate_a
更新 好的,经过一番调查,这在很大程度上要感谢乔恩和汉斯提供的有用答案,这就是我能够整理出来的内容。到目前为止,我认为它似乎运作良好。当然,我不会用我的生命去赌它的完全正确性。 public stat
我正在创建一个 Pandas DataFrame,其中一列是一年中每隔半小时的温度。 I want to create a column which on each row contains the
关于 Activity 的官方文档列出了 7 种生命周期方法。 onPostResume() 没有被引用为生命周期方法。 但是我觉得这个方法很重要。 在生命周期中,当一个activity从隐藏到显示状
问:数组键中的冒号:有什么特殊意义吗? 来自手册: 数组可以通过array() 语言构造来创建。它将任意数量的逗号分隔键 => 值对作为参数。 array( key => value ,
这个问题在这里已经有了答案: Difference between int[] array and int array[] (26 个答案) 关闭 8 年前。 String S[] = new St
为冗长的介绍道歉 - 只是试图适本地设置场景以避免歧义和困惑。 Web 应用程序已经从用于服务器端逻辑的基于浏览器的笨接口(interface)发展为完全基于浏览器的应用程序,对服务器端逻辑的需求最少
在 C 中,给定两个单精度或 double 浮点数,是否有一种简单的方法来确定它们有多少有效数字“匹配”? IE。如果我有两个十进制表示的这样的数字 1.64298272和 1.64298296我想得
在使用不同的排序算法时,我很惊讶 Groovy 闭包的表现非常糟糕。到目前为止,我找不到一个好的答案,所以现在在这里碰碰运气;) 为什么 Groovy 闭包比传统方法慢这么多? 这是一个显示性能差异的
我尝试使用 SKLearn 对相当大的数据集进行 LR,该数据集包含约 600 个虚拟变量和很少的区间变量(数据集中有 300 K 行),并且生成的混淆矩阵看起来很可疑。我想检查返回系数和方差分析的显
在对可扩展哈希进行编码时,可以选择使用哈希值的最高有效位或最低有效位来确定要哈希到哪个桶。使用最低有效位有许多优点: 当你加倍目录时,你可以只复制所有的指针,而不是必须创建一个新的目录来交错它们。 您
在发出管理命令 runserver 时,它会使用加载程序运行服务器。在Django1.5的源码中遇到了一段代码在启动新进程/线程中的服务器之前,它在环境变量中专门将 RUN_MAIN 的值设置为 't
似乎 Gremlin 控制台不适用于 Windows: 我下载了最新的 Gremlin 控制台并运行 bin\gremlin.bat 文件。似乎在连接(如下面的命令)并运行一个简单的远程命令(g.V(
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: At least the first 31 ,or 63 characters of an internal nam
我是一名优秀的程序员,十分优秀!