计算机的编码方式
机器数、真值
在计算机中以二进制的形式保存的数就是机器数。在机器数中首位是表示正负号的。0:正数,1:负数。
机器数表示的真正数就是真值。如:00000001=+1
,10000001=-1
原码反码补码
原码:符号位+真值的绝对值。
反码:非负数,本身。
负数,符号位不变,其余各们取反。
补码:非负数,本身。
负数,符号位不变,其余各位取反,+1.即原码的反码加1.
用途
在cpu中把减法转换为加法。
1 - 1
= 1 + (-1)
= [00000001]原 + [10000001]原
= [00000001]反 + [11111110]反
= [11111111]反
= [10000000]原
= -0
// 这种表示方法不对。0不应该有正负。
// 正确过程
1 - 1
= 1 + (-1)
= [00000001]原 + [10000001]原
= [00000001]补 + [11111111]补
= [00000000]补
= [00000000]原
= 0
1 - 2
= 1 + (-2)
= [00000001]原 + [10000010]原
= [00000001]补 + [11111110]补
= [11111111]补
= [11111110]反
= [10000001]原
= -1