使用逐位运算符计算数据类型的最大值和最小值



我开始了解Java中的按位运算符,但是,我不太了解使用按位运算符计算数据类型(短、字节、长、浮点(的最大值/最小值的问题。

我们如何开始?由于我只发现了关于求偶数/奇数的问题,所以计算对之间的值。

任何建议都会很有帮助,因为我已经花了很多时间来理解它,但到目前为止我还没有取得任何进展。遗憾的是,关于Bitwise运算符操作的话题不多。

要获得最大值,请将所有位填充为1。最小值是最大值的否定。

public class Main{
public static void main(String[] args) {
int value = 0;
for(int i=0; i<31; i++) {
value |= 1<<i;
}
System.out.println(value);
System.out.println(Integer.MAX_VALUE);
System.out.println(~value);
System.out.println(Integer.MIN_VALUE);
}
}

输出

2147483647
2147483647
-2147483648
-2147483648

请参阅https://www.vojtechruzicka.com/bit-manipulation-java-bitwise-bit-shift-operations/#:~:text=Java%20使用%20另一种%2C%20方法,%20被%20称为%20两个%27s,由%20给定%20的%20个%20的数字%20定位%20到%20右边。

最新更新