在计算机中参与运算的数有两类:有符号数和无符号数 int 和unsigned unsigned可以看成是正数或者绝对值。
有符号数分为原码反码和补码 原码和反码的表示范围是相同的 但是补码由于将-0的位置换成2^n所以补码表示范围比原码和反码要多一位,
判断溢出比较简单的方法就是双符号位运算,一类题型浮点数表示的最大范围
浮点数的表示形式是二进制 注意一下写法
浮点数表示规格化
因为浮点表示的规格化问题 所以在运算的时候考虑的角度是不一样的
规格化之后的浮点数的表示范围:
上方是规格化之后的原码表示范围 下方是规格化之后补码的表示范围。
浮点数的阶码决定乐浮点数表示的范围 浮点数的尾数决定浮点数的精度如果浮点数和定点数的位数是相同的化浮点数表示的范围比定点数要大得多。
IEEE754标准
注意double和float的范围不一样
计组期末考试 IEEE754标准32位浮点数运算方法_哔哩哔哩_bilibili
IEEE754单精度浮点数的转换,32位浮点数_哔哩哔哩_bilibili
- 首先找到第一个小数点后一位的位置,然后得到2的四次方
- 然后加上127并把它转换成 二进制
然后再把后边的尾数写进去
移位运算
逻辑移位不用多说 直接填0就行 算数移位有一些讲究
这种移位的规则可以用于booth算法中 算数移位不动符号位。
运算:
原码一位乘
注意补码右移不要动符号位,
补码运算电路 掌握
除法运算
不恢复余数法加减交替法;
浮点数的运算
浮点数的最高位不变
原码是 1.1101000 反马是1.0010111 所以对应的寄存器十六进制是 9 7