定点数表示
定点表示:约定机器中所有数据的小数点位置固定不变,由于约定在固定的位置,小数点就不再用“.”表示,通常放在数值位最后面或最前面,这样数据表示成纯整数或纯小数
1、无符号数的表示
用全部二进制代码表示数字,没有符号位,8位二进制无符号数范围(00000000~11111111)0~2的8次方-1(0-255) 共256个数
2、有符号数的表示
定点数x=x0x1x2x3...xn在定点机中表示如下(x0:符号位 0代表正号 1代表负号)
纯小数的小数点位置在符号位之后
- 纯小数的表示范围为:
(X0X1X2X3X4...Xn数值位各位均为0时绝对性最小,数值位各位均为1时绝对值最大)0<=|x|<=1-2的负n次方。 0.000000001是2的负9次方 0.11111111=1-0.00000001
数值位全为1是绝对值对大
- 纯整数的表示范围:
(X0X1X2X3....Xn数值位各位均为0时绝对值最小,数值位各位均为1时绝对值最大)-(2的n次方-1)<x<2的n次方-1
原码表示法
原码就是数值的真值(绝对值)前面加上一个符号位(正数加0 负数加1)
定点小数的原码表示:
定点小数的原码形式为X0X1...Xn,则原码表示的定义为:(正数原码是本身 负数为1+负数的绝对值)
原码中有+0和-0之分
【+0】原=0.000
【-0】原=1.000
一个n+1位(包括数值位和符号位)定点小数原码的表示范围
-0.111111~+0.111111
定点正数的原码形式为X0X1X2...Xn则原码表示的定义为
n+1为定点整数原码的表示范围为
1)x和-x的原码转换
将【x】原的符号位(左端第一位)取反,即可得到【-x】原
2)原码中的0表示不唯一
3)若原码字长为n总共有2的n个编码,但对应的真值只有2的n次方-1个
因为[0]原占用了两个编码,因此原码表示的范围较小
4)若原码字长为n,总共有2的n方个编码,但对应的真值只有2的n次方-1个
补码表示法
简化加减运算
对于一个确定的模而已,当需要减去一个数x时,可以用加上x对应的负数的补码
补码的性质:
1)+0和-0的补码表示一致 0的补码只有一种
2)-1补码=2+(-1)=10.000+(-1.000)=1.000 -1的补码和-0的原码一样
3)n+1位纯整数补码表示中【-2的n次方】补码=100000000 和-0的原码一样
4)补码的表示范围比原码表示范围大
3、补码和原码的关系 原变补符号位不变
4、x的补码和-x的补码的关系 正负补符号位在内
5、补码的算术移位规则
补码左移:符号位不变,数值部分左移,最低位移除的空位填0
补码右移:符号位不变,数值部分右移,最高位移出的位填符号位
6、负数补码形式上大于正数的补码
7、补码的位扩展
例如将字节(8位)表示的补码扩展位16位。
定点小数:最低位扩0
定点整数:在最高位用符号位扩展
8、常用的求补码的方法(与定义求补码比较)
反码表示法
二进制的各位0变1 1变0
+0和-0的反码表示不同
移码表示法
补码很难直接判断大小
(补码是2的n+1次方 移码是2的n次方)
补码和移码的关系是符号位相反 数值位相同
原文地址:https://www.cnblogs.com/dream-to-pku/p/11613994.html