小数:
x0.x1x2x3…xn,其中x0是符号位
整数:
x0x1x2x3…xn,其中x0是符号位
首先形成的概念是:原码和反码小数表示的范围是一样的,仅仅是二进制的存储不同罢了。
更有趣的是它们的存储范围是关于零点对称的!
原码小数,反码小数都是: −1+2−n=<x<=1−2−n
中间是 +0,−0 两种
x0x1x2x3…xn
原码整数,反码整数: −(2n−1)≤x≤2n−1 //这个很好理解,例证是-127~127
补码里的0只有一种表示,因此多了一个离散状态可以表示其他的数,这个数在小数中是
−1
,整数中是
−2n
所以把数据给了最小的那个。
自然而然就不是对称的。
因此补码小数: −1≤x≤1−2−n
补码整数: −2n≤x≤2n−1
总结一下三种表示方法的范围:
定点小数:
原码: -(1-2-n) ≤ N ≤ 1-2-n
反码: -(1-2-n) ≤ N ≤ 1-2-n
补码: -1 ≤ N ≤ 1-2-n
定点整数:
原码: -(2n -1) ≤ N ≤ 2n -1
反码: -(2n -1) ≤ N ≤ 2n -1
补码: - 2n ≤ N ≤ 2n -1