Tag: 位运算符

反向字节顺序为long

我有一个long变量,我需要反转它的字节顺序。 例如: B1, B2, … , B8我应该返回一个由B8, B7, …, B1组成的长B8, B7, …, B1 。 如何通过使用按位运算来实现?

按位运算符结果如何发生?

我很惊讶我在Google上找不到这个简单的问题答案。 在检查了十几个不同的页面后,我将在这里问… 根据这个页面 ,3和5导致1.另外,3 | 5结果是7.我唯一的问题就是: 我们如何获得1和3和5? 我们如何获得3 for 3 | 5? 还有,负数呢? 8&-8如何导致8? 果然,在java中编写以下内容: System.out.println(3&5); System.out.println(3|5); System.out.println(8&-8); 生成此输出: 1 7 8 但同样,这些结果如何确定/计算?

在Java中使用bitwise&operator和+会产生不一致的结果

有人可以解释为什么这两个Java代码表现不同吗? 第一个正确计算位数,但第二个只显示1或0表示非零数字。 我不明白发生了什么事。 public static void printNumUnitBits(int n){ int num=0; for(int i=0;i>>1; } System.out.println(“Number of one bits:”+num); } public static void printNumUnitBits(int n){ int num=0; for(int i=0;i>>1; } System.out.println(“Number of one bits:”+num); }

为什么在Java(高+低)/ 2错误但(高+低)>>> 1不是?

我理解>>>修复溢出:当添加两个大的正长数时,你可能会得到一个负数。 有人可以解释这种按位转换如何神奇地修复溢出问题吗? 它与>>什么不同? 我怀疑:我认为这与Java使用两个赞美这一事实有关,所以如果我们有额外的空间,但溢出是正确的数字,但是因为我们没有变成负面。 所以当你移动并用零划桨时,它会因为两个赞美而神奇地得到修复。 但我可能是错的,有点大脑的人必须证实。 🙂

“| =”在Java中意味着什么?

注意我的问题不是关于!=但是|= 一个用法示例在这里 我假设x |= y与x = x | y相同 但我找不到确认文件,并希望确定 谢谢

如何在长的特定位置设置/取消位?

如何在Java中的long的特定位置设置/取消位? 例如, long l = 0b001100L ; // bit representation 我想在位置2处设置位并在位置3处取消设置位,因此相应的长度将是, long l = 0b001010L ; // bit representation 任何人都可以帮我怎么做?