定点数

定点数的表示

原码的表示范围

四位原码表示的最大整数和最小整数

形式 真值(整数) 真值(小数)
最大(整/小)数 0111 7 (0.111)1-2-3
最小(整/小)数 1111 -7 -(1-2-3

最大小数的真值是如何计算的呢?

最大小数 运算 辅助值 结果
形式 0111(0.111) + 0001(0.001) 1.000
真值 1-2-3 + 2-3 1

最小小数的真值是如何计算的呢?

最小小数 运算 辅助值 结果
形式 1111(1.111) + 1001(1.001) 1.000
真值 -(1-2-3 + -2-3 -1

四位原码能表示多少个整数
-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7共15个
23*2=16个为什么多出来一个,因为带符号位的原码有一个正零一个负零,多出来一个零应该减去。

从四位原码推导到N位原码

整数 2N-1-1~ -(2N-1-1)
小数 1-2-(N-1) ~ -(1-2-(N-1))

N位原码能表示多少个整数
2N-1

补码的表示范围

先观察下表

-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4
原码 1111 1110 1101 1100 1011 1010 1001 0001 0010 0011 0100
反码 1000 1001 1010 1011 1100 1101 1110 0001 0010 0011 0100
加一 1 1 1 1 1 1 1
补码 1000 1001 1010 1011 1100 1101 1110 1111 0001 0010 0011 0100

四位补码表示最大整(小)数和最小整( 小) 数

原码 补码 整数真值 小数真值
最大 0111 0111 7 1-2-3
最小 1111 1001-0001(20)=-7-1=-8 -8 1.001-0.001=-(1-2-3)-2-3 =-1

N位补码的表示范围

N位补码范围 N位原码范围
整数 2N-1-1 ~ -2N-1 2N-1-1~ -(2N-1-1)
小数 1-2-(N-1) ~ -1 1-2-(N-1) ~ -(1-2-(N-1))

定点数的运算

原码加减

原码不适合做加减运算,步骤:1、判断结果的符合,2、||被减数|-|减数||,3、结果带上符合

补码加减

【A+B】补=【A】补+【B】补
【A-B】补=【A】补+【-B】补
优点:直接运算

溢出的判断

什么是溢出?假设计算机int类型是四位,下表给出溢出的例子

真值 符号位
a 6 0 1 1 0
+ +
b 5 0 1 0 1
结果 -7 1 1 1 1

两个正数相加却得到一个负数显然是不合常理的,也就是溢出了,这个例子也展现了数据在内存中溢出的真实状态。

双符号位法

两个符号位同时运算,双符号位不同则溢出,上溢(超出能表示的最大值),下溢(超出能表示的最小值)

数值最高位的进位和符号位进位不同则溢出

结果的符号位如果与其中一个加数不同时则溢出

定点数的移位

逻辑移位

分为逻辑左移和逻辑右移,规则:移出位移走,符号位补零;

小循环移位

移出移入到补位位,同时移入到标记C中

C C
小循环左移 1 0 1 0 1
1 0 1 0
小循环右移 0 1 0 1 0

大循环移位

大循环左移,大循环又移,规则:移出位移入到C位,C位移入到补位位

算术移位

保留数值的数学意义,对二进制而言左移相当于乘2,右移相当于除2
有可能溢出或丧失精度
对于正数而言,三码相同,无论左移右移都补0;
对负数反码而言,左移右移都补1;
对负数补码而言,左移在右补0,右移在左补1;

猜你喜欢

转载自blog.csdn.net/qq_43515378/article/details/104783223