java int最大值是2147483647,int类型数占4个byte,1byte等于8bit,也就是有32个bit占位符,计算代码为【for (int i = 0; i<= 30; i++),tmp=tmp+(1 << i);】。
java int最大值是:2147483647
int 类型数占4个byte.
1byte=8bit
也就是有32个bit占位符
可以用位移运算得出
int tmp = 0; for (int i = 0; i <= 30; i++) tmp = tmp + (1 << i); System.out.println(tmp);
不是32位么,怎计算只到30?
由于Int最高位,也就是第32不是用来计算value,而是用来表示此值是正数还是负数,0表示正数,1表示负数。不参与value计算。
所以只有31位,那还差一位,二进制换算,是从0开始的,在移位过程中,移到30位,就是第31bit值。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。