计算机语言中负数以其正值的补码形式表示是什么意思
所谓的补码,其实,就是一个“代替负数”的正数。
你可从十进制的计算来理解。
比如,限定使用两位十进制数(0~99)。
计数周期就是: 10^2 = 100。
那么有:
25 - 1 = 24
25 + 99 = (一百) 24
舍弃进位,只取两位,+99 就可以代替-1。
加法,也就可以代替减法运算。
那么,99,就称为-1 的补数。
同理,98,就是-2 的补数。
。。。
计算公式:负数 X 的补数 = 周期 100 + 负数 X。
如果是 n 位数,补数就是: 10^n + 负数 X。
-----------------------
计算机用二进制,补数,就称为“补码”了。
利用补码,就可以把加、减法,统一用加法来实现。
这样做,就能够简化硬件。
如果限定,仅使用【 8 位 2 进制数】,那就是:
0000 0000 ~ 1111 1111。
对应十进制,就是: 0 ~ 255。
共有 2^8 = 256 种组合。计数周期也就是 2^8。
此时,-1 的补码,就是 255 ( = 1111 1111)。
同理,-2 的补码,就是 254 ( = 1111 1110)。
。。。
计算公式:
当 X < 0,则 [ X ]补 = X + 周期 ( 2^8 )。
一般化的形式是:
[ X ]补 = 2^n + X, n 是位数。
-----------------------
求补码,并不需要“符号位原码反码取反加一符号位不变”。
老外数学不好,算个简单的数,都不会,才需要弄那些乱七八糟的。
从这条路走下去,你就不会理解“补码的意义”。