3 数据的机器级表示

图片来源:南京大学软件学院COA课程PPT

©author:zzb

3 数据的机器级表示

image-20211218090244930

信息的二进制编码

image-20210914164832038

编码:用少量简单基本符号复杂多样数据进行一定规律的组合。

采用二进制的原因:

  1. 多种物理器件可以表示为两种稳定的状态,如开和关

  2. 二进制的规则简单

  3. 二进制的0和1可以对应逻辑运算中的真和假

用离散有限的数据去表示连续无限的数据,必然会产生偏差

整数的二进制表示

image-20210914171400831

对于无符号整数不存在各种码的问题。各种码是用来解决如何表示带符号数的

image-20220105164323076

补码表示的数,不必关心其符号而可以直接相加,即对应机器不关心数据到底是无符号数还是带符号数

image-20220105170903478

补码的最高位符号位,如果是0那么和无符号一样,如果是1,那么就需要-2n-1,才是真正的值

image-20220105171042276

补码移码都只有一个0,而原码和反码中有两个0

反码跟原码是正数时,一样;负数时,反码就是原码符号位除外,其他位按位取反

当移码的偏置常数为2n-1时,移码和补码仅第一位不同

浮点数的二进制数表示

image-20220105171706899

image-20220105171859823

image-20220105172415066

image-20220105172521518

精度和范围的大小是相互矛盾的,因为k位二进制数最多只能表示2k个数字,因此范围大精度就小

image-20220105172626111

由上图可见,在两个阶码之间,能表示的数字个数为223个,而随着阶码变大,这个区间变大,所以数字的精度会变小

非规格化数把阶码全0用于表示0~2-126之间的数字,和上面同理这个区间的长度是2-126-0=2-126而2-126~2-125之间的长度也是2-126,因此在这两个区间内都可以均匀地表示223个数字

image-20220105173227836

image-20220105173456901

总结

image-20220105173947144

  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
  • Copyrights © 2022-2024 zzb
  • RZ
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信