java int 的最大值+1为什么是-2147483648 为什么呢?一直搞不明白 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int 类型的数据是4个字节,每个字节8位,所以int范围应该是-2^31到2^32 这是因为整数在内存中使用的是补码的形式表示,最高位是符号位,0表示正数,1表示负数:例如一个8位的整数正数的补码:为这个数的2进制码,例如3:0000 0101负数的补码:为这个负数的绝对值的2进制码,取反加1,例如-3: a: 3的2进制码取反为: 1111 1010 b: 加1:1111 1011 c: 所以-3的补码是:1111 1011从补码计算这个数:从一个正数的补码计算这个正数,例如0000 0101:因为符号位是0,所以是正数,所以直接计算这个正数就行了,所以结果是 3从一个负数的补码计算这个负数,例如-3:1111 1011: a: 因为符号位(最高位)为1,所以表示这个数是负数 b: 用补码取反加1为这个负数的绝对值整数值:0000 0100 + 1 => 0000 0101 => 3 c: 所以1111 1011的值为-3例如: byte b = 127; b = (byte) (b + 1);最后b的值是多少? 127的二进制为: 0111 1111 127+1则为:0111 1111 + 1 = 1000 0000所以当计算1000 0000的值时, a: 最高位为1,所以是负数 b: 取反加1:0111 1111 + 1 = 1000 0000 c: 计算1000 0000的值:128 d: 结果:128的负值,所以为-128,即byte类型的127加1的值为-128 这个是组成原理的知识,跟java没有关系。 现在搞Java不需要计算机专业 个人理解..int 是32位的 左边1位是符号位 其他31位是数值位 最大的正整数 符号位是0 其他位都是1 这个数+1进位之后 符号位变成1 其他位变成0 就是最大的负整数不知道解释的对不对 int 的取值范围是 -2147483648 ——2147483647 2147483647 的二进制数是1111111 11111111 11111111 11111111 + 1 =10000000 00000000 00000000 00000000 就是-2147483648 降低CPU占用率都有什么方法啊? java URLConnection 下载的网页乱码 求助! 对 BufferedInputStream的进一步研究 矩阵转置 有什莫parser可以解析TSV-tab separated 文件吗? 这样做总觉得不舒服,帮我看看 请大家帮帮忙,我刚刚开始学Java!!!麻烦大家了!! 怎么样用java写一个程序,把.dbf的文件转成mysql的文件?急!!! 我想用java做一个斗地主(人机模式即可)的程序,大家探讨一下。。。 Jacob调用alasunsmscon.ocx控件的问题 Rmi的对象在服务器上生成stub使用了服务器的外网ip
例如一个8位的整数
正数的补码:为这个数的2进制码,例如3:0000 0101
负数的补码:为这个负数的绝对值的2进制码,取反加1,例如-3:
a: 3的2进制码取反为: 1111 1010
b: 加1:1111 1011
c: 所以-3的补码是:1111 1011从补码计算这个数:
从一个正数的补码计算这个正数,例如0000 0101:因为符号位是0,所以是正数,所以直接计算这个正数就行了,所以结果是 3从一个负数的补码计算这个负数,例如-3:1111 1011:
a: 因为符号位(最高位)为1,所以表示这个数是负数
b: 用补码取反加1为这个负数的绝对值整数值:0000 0100 + 1 => 0000 0101 => 3
c: 所以1111 1011的值为-3例如:
byte b = 127;
b = (byte) (b + 1);
最后b的值是多少?
127的二进制为: 0111 1111
127+1则为:0111 1111 + 1 = 1000 0000
所以当计算1000 0000的值时,
a: 最高位为1,所以是负数
b: 取反加1:0111 1111 + 1 = 1000 0000
c: 计算1000 0000的值:128
d: 结果:128的负值,所以为-128,即byte类型的127加1的值为-128
现在搞Java不需要计算机专业
int 是32位的 左边1位是符号位 其他31位是数值位
最大的正整数 符号位是0 其他位都是1
这个数+1进位之后 符号位变成1 其他位变成0 就是最大的负整数
不知道解释的对不对
2147483647 的二进制数是1111111 11111111 11111111 11111111 + 1 =
10000000 00000000 00000000 00000000 就是-2147483648