目录
一、原码
- 最高位是符号位,0 表示正号,1 表示符号,其余的 n - 1 位(一般n = 8)表示数值的绝对值。(采用二进制计数制:0,1)
二、反码
- 正数的反码与原码相同,负数的反码则是其绝对值按位求反。但是符号位是不变的。
三、补码
- 正数的补码与其原码和反码相同,负数的补码则等于其反码的末位加1。
- 补码作用:简化计算机部件的设计。
- 0 有唯一的补码:[ +0 ]补 = [ +0 ]补 = 0 000 0000,+-0编码相同。
- [ [ x ]补 ]补 = [ x ]原。
四、移码
- 将补码的符号位取反,即为移码。
- +-0编码相同。
五、定点整数和定点小数的取值范围
- 原码和反码的定点整数取值范围: -(2^(n-1) - 1)~ + (2^(n-1) - 1)。一般是n = 8 ,-127~+127。
- 补码和移码的定点整数取值范围: - 2^(n-1) ~ + (2^(n-1) - 1 )。一般是n = 8 ,-128~+127。
- 原码和反码的定点小数取值范围:-(1 - 2^ -(n-1) -1)~ +(1 - 2^-(n-1))。
- 补码和移码的定点小数取值范围:- 1 ~ +(1-2^-(n-1))。
六、浮点数
公式:(B)^ N = 2^E * F
浮点数所能表示的数值范围主要由阶码决定(E)。
数值的精度由尾数决定。(F)
阶码(包括一位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,所能表示的数值范围:
- 最大正数:+(1 - 2^-(M+1))* 2^(2^(R-1) - 1)。
- 最小负数:-1 * 2^(2^(R-1) - 1)。
当机器字长为 n 时,定点数的补码和移码可表示 2^n 个数。而其原码和反码只能表示2^n-1个数。
七、规格化浮点数
- 将尾数的绝对值限定在区间【0.5,1】。
- 浮点数相加运算需要统一两个数的阶码。
对阶:小阶向大阶对齐,浮点数向右移。
八、小知识点
- 小数点不需要占一个存储位。