目录
1.定点数开篇
无符号数;整个机器字长的全部二进制位均为数值位,没用符号位,相当于数字的绝对值
表示范围2的n次方-1。
有符号数:
原码:用尾数表示真值的绝对值,符号位“0/1”对应“正/负”
若机器字长为n+1位,则尾数占n位。
原码:原码通常用来表示定点小数,用来表示浮点数的尾数。
原码就是用最高位来表示符号,符号位用0与1来表示正负,剩下的数表示数值。
缺点:0的表示并不唯一。4位二进制数的原码表示方法中,0即可以用1000表示,也可以用0000表示。
反码:正数不变,负数除了符号位全取反
补码:正数不变。负数,反码+1 计算机用补码来表示带符号整数。
移码:补码的基础上将符号位取反,移码和补码一一对应注意移码只能表示正数。
移码主要是用来表示定点整数,用于表示浮点数的阶(指数)
移码就是将每一个数值加上一个偏置常数( Excess / bias)。很方便用来比较大小。移码和补码的真值0只有一种表示,补码和移码可以多表示一个负数
EG:
2.移位问题
3.乘法的实现:
符号位 :异或运算
其余:按位计算
4.补码的作用:
1、由于原码和反码中,+0与-0的表示并不相同,所以计算机中一般使用补码。
2、其实还有一个更重要的作用,就是利用高位溢出,将减法运算变成加法运算。(简化运算的设计)
正因如此:补码负数表示范围可以多表示一个最负的数。使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
如果使用原码进行运算,就会很麻烦,这时候提出了加法替代减法
逆时针 减法
顺时针 加法
把减法操作变成加法操作
补码的作用:使用补码可以将减法操作转变为等价的加法,符号位参与运算。
节省硬件成本
想知道为什么,研究一下模的运算
假设当前时针指向11点,而准确时间是8点,调整时间可有以下两种拨法:
- 一种是倒拨3小时,即:
11-3=8
- 另一种是顺拨9小时:
11+9=12+8=8
在以模为12的系统中,加9和减3效果是一样的,因此凡是减3运算,都可以用加9来代替。对“模”12而言,9和3互为补数(二者相加等于模)。所以我们可以得出一个结论,即在有模的计量系统中,减一个数等于加上它的补数,从而实现将减法运算转化为加法运算的目的。
移码:真值+偏置值