Java/C++:(1 << 31) - 1为什么可以获得int最大值呢?

日期:2021-06-25 18:04:49 人气:1

Java/C++:(1 << 31) - 1为什么可以获得int最大值呢?

Java和c++中int占四个字节,也就是32位,其中第一位(最高位)为符号为,(1<<31)表示1左移31位,使得符号位为1,其他位为0,再将左移后的结果减一就使得符号位为0,其他位都为1,即为int表示的有符号数的最大整数。
说明:
<<为位运算中的左移,a<<b表示a向左移动b位,移动后在末尾最低位补0,如1<<2得到100,即10进制的4
对应的>>为位运算中的右移,a>>b表示a向右移动b位,
    A+
热门评论