一. 机器数
大家想必都知道计算机只能识别0和1,这个数是以二进制形式表示的 , 叫做这个数的机器数。 数分为有符号数和无符号数。原码、反码、补码都是有符号定点数的表示方法。
比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。
那么,这里的 00000011 和 10000011 就是机器数,0000011 和 0000011(去掉最高位)就是绝对值。
二. 原码, 反码, 补码的基础概念和计算方法.
对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式.
原码
原码就是符号位加上绝对值, 最高位为符号位,例如八位二进制
X=+1, [X]原= 00000001
X=-1 , [X]原= 10000001
反码
知道原码后,反码就比较简单了,
正数的反码是它本身,负数的反码就是在原码的基础上,符号位不变,其余取反值。
00000001 =00000001
10000001 = 11111110
补码
补码也非常的简单就是在反码的基础上按照正常的加法运算加1,原码是其本身。
00000001 = 00000001
10000001 = 11111110
可见计算机内,3种表示法原码, 反码和补码,有了数值的表示方法就可以对数进行算术运算,例如
1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原