avatar

【计算机组成原理】计算机概论计算篇二

计算机概论计算篇二

定点数与浮点数

定点数的表示方法

小数点固定在某个位置的数称之为定点数


浮点数的表示方法

  • 计算机处理的很大程度上不是纯小数或纯整数
  • 数据范围很大,定点数难以表达

浮点数的表示格式



浮点数的表示范围



  • 单精度浮点数: 使用4字节、32位来表达浮点数(float)
  • 双精度浮点数: 使用8字节、64位来表达浮点数(double)

浮点数的规格化

  • 尾数规定使用纯小数
  • 尾数最高位必须是1



定点数与浮点数的对比

  • 当定点数与浮点数位数相同时,浮点数表示的范围更大
  • 当浮点数尾数为规格化数时,浮点数的精度更高
  • 浮点数运算包含阶码和尾数,浮点数的运算更为复杂

浮点数在数的表示范围、精度、溢出处理、编程等方面均优于定点数
浮点数在数的运算规则、运算速度、硬件成本方面不如定点数

定点数的加减法运算


数值位与符号位一同运算,并将符号位产生的进位自然丢掉



判断溢出

双符号位判断法

  • 单符号位表示变成双符号位:0=>00,1=>11
  • 双符号位产生的进位丢弃
  • 结果的双符号位不同则表示溢出

定点数的加减法运算总结


浮点数的加减法运算

对阶

对阶的目的是使得两个浮点数阶码一致,使得尾数可以进行运算

  • 浮点数尾数运算简单
  • 浮点数位数实际小数位与阶码有关
  • 阶码按小阶看齐大阶的原则

尾数求和

  • 使用补码进行运算
  • 减法运算转化为加法运算:A - B = A + (-B)

尾数规格化


尾数规格化(右移)

  • 一般情况下都是左移
  • 双符号位不一致下需要右移(定点运算的溢出情况)
  • 右移的话则需要进行舍入操作


溢出判断

  • 定点运算双符号位不一致为溢出
  • 浮点运算尾数双符号位不一致不算溢出

因为尾数双符号位可以进行右规

  • 浮点运算主要通过阶码的双符号位判断是否溢出

如果规格化后,阶码双符号位不一致,则认为是溢出




浮点数的加减法运算总结

浮点数的乘除法运算




文章作者: hirak0
文章链接: https://hirak0.xyz/posts/39570/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 hirak0's Blog
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论