原码
- 127的原码为0111 1111
- -127的原码为1111 1111
问题:
- 0的表示不唯一,分为+0和-0
- 运算需要根据符号位设计加法器和减法器
反码
正数的反码与原码一致;
负数的反码是对原码按位取反,只是最高位(符号位)不变
- 127的反码为0111 1111
- -127的反码为1000 0000
符号位参加运算
补码
正数的补码与原码一致;
负数的补码是该数的反码加1。
如:
- 127的补码为0111 1111
- -127的补码为1000 0001
0的表示唯一
0的表示
分为+0和-0
-0原码:10000
补码:00000
反码:11111
移码
- 移码通常用于表示浮点数的阶码。
- 阶码一般为整数,故移码通常只用于表示整数
- 将X正向平移2n-1
定点小数
定点整数
无符号定点整数
浮点数表示原理
- 精度取决于最小的那个数
- 让表示的范围和精度更大
尾数规格化
使数的表示是唯一的
<mark>尾数左移时,阶码减小,相当于,尾数变大,需要阶码记录变大了多少</mark>
<mark>尾数右移时,阶码增大,相当于,尾数减小,需要阶码记录减小了多少</mark>
IEEE754
移位
<mark>双符号位第二符号位参加运算</mark>
正数:
负数:
<mark>右移空位补1</mark>
舍入规则
补码加减法
溢出的判断
-
两个正数相加,结果为负数(最高数字位进位为1,符号位无进位)
-
两个负数相加,结果为正数(最高数字位无进位,符号位进位为1)
<mark>01是正溢出,10是负溢出</mark>
原码加减法
求和符号同被加数