-
相对应的概念为浮点数
- 浮点数:小数点位置不固定,浮动 9.96007 *10^2 科学计数法
- 定点数:小数点位置固定:996.007
-
无符号数
- 无符号位
- 数的绝对值
- 0 - 2^n -1
- 只有整数,没有小数
-
有符号数
-
定点整数,小数点在最后一位
-
定点小数,小数点在符号位后
-
(尾数:数值部分)
-
原码:用尾数表示真值的绝对值,符号位 0/1对应正/负
- 整数范围 − ( 2 n − 1 ) < = x < = 2 n − 1 -(2^n -1) <=x<=2^n-1 −(2n−1)<=x<=2n−1
- 小数范围 − ( 1 − 2 − n ) < = x < = 1 − 2 − n -(1-2^{-n}) <=x<=1-2^{-n} −(1−2−n)<=x<=1−2−n
- 真值0有 +0 和 -0 两种形式
-
反码:
- 在原码的基础上
- 符号位为0,相同,不变
- 符号位为1,将数值位全部取反
- 只是补码的一个中间状态,没啥用
- 在原码的基础上
-
补码:
- 正数的补码=原码
- 负数的补码 = 反码末位+1,要考虑进位 (符号位再往前的进位丢掉)
- 原码为1000 0000,则其反码为1111 1111,其补码为0000 0000,所以补码的0只有一种
- 而对于补码中的1000 0000,人为规定其为 − 2 7 -2^7 −27,因此补码整数范围 − 2 n < = x < = 2 n − 1 -2^n <=x<=2^n-1 −2n<=x<=2n−1
- 小数的话也是一样 − 1 < = x < = 1 − 2 − n -1 <=x<=1-2^{-n} −1<=x<=1−2−n
- 负数补码到原码:取反,+1
- 补码的作用
- 例如,要实现正数+负数,需要将负数变成正数,然后做减法。而实际上加法器实现非常简单,减法器硬件实现复杂
- 于是考虑用加法代替减法
- 减去一个数,等于加上这个数的补数 (也就是补码)
- 补码的原生定义: 模-负数a的绝对值 = a的补码
- 用补码,让减法操作转变为加法操作
- 执行加法时,符号位也一起参与运算
-
移码
- 只能用于表示整数
- 在补码的基础上将符号位取反
- 作用:
- 让计算机快速比较两个数中谁的真值更大
-
技巧[x]补—》[-x]补: 全部取反、+1
-
定点数表示 原码、反码、补码、移码
最新推荐文章于 2023-04-21 12:52:16 发布