1,真值和机器数
真值可以用二进制表示,也可以用十进制表示。例如
N1 = +1101001B = +105 , N2 = -1101001B = -105
一个数在计算机中的表示形式就是机器数。为了表示正数与负数,用最高位作为符号位,符号位‘0’表示正数,符号位‘1’表示负数。
N1和N2对应的机器数为
N1:01101001 , N2:11101001
2,带符号数、无符号数
最高位为符号位的数就是带符号数。
全部有效位都表示数的大小的就是无符号数。
3,原码、反码、补码
原码反码补码就是把符号位与数值位一起进行编码的各种方法。
正数的 原码 =反码=补码
负数的反码就是它的原码除符号位外各位取反。负数的补码就是它的反码加1。
数0的原码有两种不同形式:
[+0] 原= 00000000B ,[-0] 原= 10000000B
数0的反码也有两种形式:
[+0] 反= 00000000B ,[-0]反 = 10000000B
0的补码仅有一种形式:[+0]补=[-0]补 = 00000000B
原码反码补码的实质是用来解决负数在计算机中表示的三种不同编码的方法。
4,对于无符号数,8位二进制表示范围0~255,n位二进制数表示范围0~2^n-1
对于符号数,8位二进制数的原码反码表示范围都是-127~+127,补码表示范围-128~+127,
n位二进制带符号数,原码反码表示范围-2^(n-1)+1 ~ 2^(n-1)-1,补码表示范围-2^(n-1)~ 2^(n-1)-1