03_数据的机器级表示

Charlie

1.信息的二进制编码

NVIDIA_Share_kM0hbupCGD.png

  • 编码:用少量简单的基本符号对复杂多样的信息进行一定规律的组合
  • 位的二进制编码至多表示个不同的值

2.整数的二进制表示

原码、反码、移码在进行加法运算时都会造成不必要的硬件需求,因此目前计算机中普遍使用补码。
补码可以实现不同符号统一的加减运算,即可以用加法实现减法。

2.1补码表示

NVIDIA_Share_Ru7MCmvL93.png
位补码可以表示

2.2补码的真值

NVIDIA_Share_mFleHVLRCl.png

2.3不同的整数编码

NVIDIA_Share_ncgsju1w2b.png

3.浮点数的二进制表示

  • 浮点数:小数点的位置不固定
    • 越大的数精度越低,但可表示数的范围比定点数大
    • 表示数的个数不变,k位浮点数可表示的数仍是个(类比插旗,🚩总数不变)
      NVIDIA_Share_epSSsbGIzF.png

3.1规格化数

NVIDIA_Share_520rTpHmZE.png

  • 尾数第一位总是1,因此可以隐藏。多表示一位增加了精度,但可表示的数不会增加。
  • 尾数为原码,指数为移码

3.1.1规格化数的范围

NVIDIA_Share_r4zn8tV3XX.png

3.1.2规格化数的变化

  • 增加阶码(E)位数:扩大表示范围,降低表示精度
  • 增加尾数(S)位数:提高表示精度,减少表示范围
  • 采用更大的底(B):实现更大的范围,提高/降低表示精度

3.2非规格化数

  • 处理规格化数下溢的情况
  • 当结果的阶值太小时,通过右移进行非规格化;每次右移阶值增,直到阶值落在可表示范围内NVIDIA_Share_IJKCm8FGWX.png

3.3 IEEE 754标准

  • 分为32位单精度和32位双精度
    NVIDIA_Share_Kx5Jix6JSe.png
    NVIDIA_Share_eDmDKAt9CZ.png
    分类
  1. 全0阶码全0尾数:
  2. 全0阶码非0尾数:非规格化数
    • 单精度指数为-126,双精度指数为-1022
    • 隐藏位为0
  3. 全1阶码全0尾数:
    • 操作数为时运算结果可能为NaN也可能为
  4. 全1阶码非全0尾数:NaN
  5. 阶码非全0且非全1:规格化数且非0

4.二进制编码的十进制数表示

  • 用4位二进制编码十进制(BCD)表示0,1,…,9。
  • **问题**:4位二进制有16种可能,而0-9只有十个数。运算时如何处理进位问题。
    NVIDIA_Share_lEdaUYmBvx.png
  • 标题: 03_数据的机器级表示
  • 作者: Charlie
  • 创建于 : 2023-01-12 18:53:00
  • 更新于 : 2024-07-05 12:55:04
  • 链接: https://chillcharlie357.github.io/posts/4480f5fc/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论