背景:JAVA语言计算5-3=?,我们知道计算机系统中数值采用二进制来表示和存储。所以十进制的5在计算机系统中用00000101来表示,但是你知道-3在计算机系统中是怎么表示的吗?也许你不知道,请看下面。
1.计算机系统中,数值一律用补码来表示和存储。(最高位符号位区分正负)
2.正整数的补码=原码,负数的补码=负数的绝对值的原码各位取反+1
举个例子:
1).+5的补码:
+5的原码:0000 0101(正数的二进制即为原码)
+5的补码:0000 0101(正数的原码=补码)
2).-5的补码
由"负数的补码=负数的绝对值的原码各位取反+1" 可知:
-5的补码=-5的绝对值得原码 各位取反 然后 +1,
就是0000 0101各位取反------>1111 1010然后+1-------------->1111 1011
所以我们得到-5的补码是1111 1011。
得到+5和-5的补码之后,计算机系统就可以做算术运算
0000 0101
+1111 1011
-------------------------------
1 0000 0000
我们这里使用byte表示,所以,高位1舍弃,结果为0000 0000,所以计算机计算结果=0,与实际一致。
以上为我个人体会,如果错误,请指正。可加个人微信探讨:wfr65430962