1.表示范围
整数原码的表示范围:[-127, +127]
整数反码的表示范围:[-127, +127]
整数补码的表示范围:[-128, +127]
小数原码的表示范围:[-127/128 , +127/128]
小数反码的表示范围:[-127/128 , +127/128]
小数补码的表示范围:[-1 , +127/128]
2 正数
原码=反码=补码
例如:
[+5]原 = 0000 0101
[+5]反 = 0000 0101
[+5]补 = 0000 0101
[+127]原 = 0111 1111
[+127]反 = 0111 1111
[+127]补 = 0111 1111
[0.1011001]原 = 0.101 1001
[0.1011001]反 = 0.101 1001
[0.1011001]补 = 0.101 1001
3.负数
反码=原码按位取反(符号位不变)
补码=反码末位+1
例如:
[-5]原 = 1000 0101
[-5]反 = 1111 1010 (符号位不变,剩下按位取反)
[-5]补 = 1111 1011 (反码末位+1)
[-128]原 = \
[-128]反 = \
[-128]补 = 1000 0000
[-0.1111011]原 = 1.111 1011
[-0.1111011]反 = 1.000 0100 (除符号位外,按位取反)
[-0.1111011]补 = 1.000 0101 (反码末位+1)
[-1]原 = \
[-1]反 = \
[-1]补 = 1.000 0000
4 负数补码的定义
负整数:
对于八位二进制整数:[x]补 = 2^8 - |x| (负数的补码 = 256 - 该数绝对值)
例如:
[-128]补 = 256 - |-128| = 128 = 1000 0000
所以只需要写出128的二进制数表达就是-128的补码
负小数:
对于八位二进制小数: [x]补 = 2 - |x|
例如:
[-1]补 = 2 - |x| = 1.0000000