yte的数据范围是-128至127
67+89=156显然溢出了,于是电脑就算不出正确的答案了
那么电脑会算出多少呢?
按计算机的算法,先把这两个加数换成补码,就成了
0100 0011 (67的补码)
+ 0101 1001 (89的补码)
——————————————
1001 1100 (得数的补码)
计算机会再将得数的补码转化成原码
因为此时的得数是一个负数(最高位为1)
所以得原码为1110 0100
再把它化为十进制,你看看是不是-100
这回能看懂了吧~~
yte的数据范围是-128至127
67+89=156显然溢出了,于是电脑就算不出正确的答案了
那么电脑会算出多少呢?
按计算机的算法,先把这两个加数换成补码,就成了
0100 0011 (67的补码)
+ 0101 1001 (89的补码)
——————————————
1001 1100 (得数的补码)
计算机会再将得数的补码转化成原码
因为此时的得数是一个负数(最高位为1)
所以得原码为1110 0100
再把它化为十进制,你看看是不是-100
这回能看懂了吧~~