0922
long 8B 两字节
浮点数:阶码+位数
阶码:用补码或移码表示的定点整数
尾数:用原码或补码表示的定点小数
浮点数的规格化:规定浮点数的最高数位必须是一个有效值
左归:最高位不是有效值时,左移,阶码减1;为了放小阶码,使得数值位(位数更精确)
右归:发生溢出时,右移,阶码加1,更高的符号位是正确的符号位
阶码加1相当于整体*2
规格化的原码尾数,最高位数值一定是1
规格化的补码位数,符号位与最高位数值一定相反
移码=真值+偏置值,一般偏置值取2n-1,补码符号位取反,符号位可不就是2n-1么
IEEE754标准
数符+阶码+尾数
其中,阶码全1和全0保留,作特殊用途
阶码用移码表示,尾数用原码,隐藏表示最高位为1
移码=阶码真值+偏移码
关于阶码真值,移码,偏移码的计算,二进制想不明白的话,可以换成十进制算啊
就移码看成无符号数,然后减去127D,得到的即是阶码真值
考虑浮点数最小最大数值的时候,别忘记阶码全0和全1是保留的
解释一下:为什么E是1到254,因为0和255被拉去保留了
然后阶码为0和为1的四种情况如图。
浮点数加减运算规则
- 对阶(小阶向大阶对齐)
- 尾数加减
- 规格化
- 舍入(规则不同,实际执行就不同,按照题干给的来)
- 判溢出(尾数溢出不一定溢出,可以通过规格化和舍入来使其不溢出;但阶数溢出就真寄了)
字:存储字长;半字:半个存储字长;字节:8bit,1B;