数据的表示

本贴最后更新于 794 天前,其中的信息可能已经事过景迁

进制的转换

在计算机中数据的表示都是二进制的,只有 0 和 1。当一个十进制的数需要保存到计算机中需要先转换为二进制。十进制转二进制的规则有两条

  1. 整数部分除 2 取余
  2. 小数部分乘 2 取整

例如 10 转换为 2 进制的步骤:

10 / 2 = 5 ... 0 5 / 2 = 2 ... 1 2 / 2 = 1 ... 0 1 / 2 = 0 ... 1

最后 2 进制的值为: 1010

我们再计算一下 0.59 的 2 进制表示

0.59 * 2 = 1.18 -> 1 0.18 * 2 = 0.36 -> 0 0.36 * 2 = 0.72 -> 0 0.72 * 2 = 1.44 -> 1 0.44 * 2 = 0.88 -> 0 0.88 * 2 = 1.76 -> 1 // .... 直到小数位等于0

码制

码制是指数据在计算机中的编码方式

原码

原码可以理解为就是十进制到二进制的直接转换映射。

数值 的原码记为 ,如果机器字长为 ,则原码的定义如下:

若 X 是纯整数,则

若 X 是纯小数,则

反码

反码的范围,其中 表示机器字长。

若 X 是纯整数,则

该方程式的语义为:

时(正数), 的值等于

时(负数), 的值等于 $2^{n-1}+|X|$

同时也可以看出来 的取值范围为: 到 $2^{n-1} -1$

若 X 是纯小数,则

反码表示法中,最高位是符号位,0 表示正数,1 表示负数。反码的正数表示和原码一致。负数的表示是原码的基础上取反。例如 的表示

数据位安位取反

补码

补码的正数表示和原码反码一致。其负数表示法在反码的基础上末尾加 1。例如 -5 的表示:

末尾 +1

移码

移码表示法是在数 上增加一个偏移量来定义的,常用于表示浮点数中的阶码。如果机器字长为 ,规定偏移量为 $2^{n-1}$,则移码的定义如下:

是纯整数,则 其中的 $2^{n-1}$ 就是上面说的偏移量

是纯小数,则 在定点小数中,1 就相当于加到最高位上了

实际上,在偏移 $2^{n-1}$ 的情况下,只要将补码的符号位取反便可获得相应的移码表示。

移码的计算过程

计算 的移码

计算 的移码

  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    588 引用 • 3538 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...