原码、反码及补码的计算
有符号数据表示法
在计算机内,有符号数据有三种表示方法:原码、反码和补码,所有数据的运算都是采用补码进行的
- 原码:就是二进制定点表示法,即最高位是符号位,“0”表示正,“1”表示负,其余位表示数值的大小
- 反码:正数的反码与原码相同,负数的反码是对其原码逐位取反,但符号位除外
- 补码:正数的补码与其原码相同,负数的补码是在其反码的末位加1
例如:用原码、反码和补码分别表示7,-7
首先得到7的二进制:00000111 --> 111
原码:
符号位 | 数值位 |
---|---|
0 | 00000111(7) |
1 | 00000111(-7) |
整数原码最高位为0,负数源码最高位为1,其余为数值位
反码:
符号位 | 数值位 |
---|---|
0 | 00000111(7) |
1 | 11111000(-7) |
正数的反码于原码相同,负数的反码与原码符号位不变,数值位取反,1变0,0变1
补码:
符号位 | 数值位 |
---|---|
0 | 00000111(7) |
1 | 11111001(-7) |
正数的补码与原码相同,负数的补码是在补码的基础上加1
练习题