机器数
定义
连同数字和符号在一起的二进制数称为机器数,由机器数表示的实际值称为真值
原码
定义
一般一个字节是八个二进制位,对于机器数则有第一个二进制位是符号位,从第二个开始到最后一个二进制位则是表示数据的大小,即最大表示范围为-127 ~ 127
,即最大数是01111111
,最小数为11111111
其中第一个符号位是 1 则代表该数是一个负数,0 则是一个正数
原码表示(举例)
C语言中可以理解为一个八位二进制数
1 |
|
反码
定义
正数的反码与原码相同,负数从第二位开始按位取反(二进制下)
特殊
同时任意一个数的反码的反码即是原码本身
零的反码表示有两种:
1 |
|
反码表示(举例)
C语言中可以理解为一个八位二进制数的后七位进行位运算中的取反(~
)
1 |
|
补码
定义
正数补码与原码相同,负数补码是对该数除符号位以外的各位取反,最末位加一。
特殊
任意数的补码的补码即原码本身,所以已知一个数的补码,求原码的操作其实就是对该补码再求补码。
零的补码唯一
1 |
|
补码表示(举例)
C语言中可以理解为一个八位二进制数的后七位进行位运算中的取反(~
),同时对其第八位二进制数加一,第八位二进制数如果为 1 则进位处理
1 |
|