原码、反码和补码的表示范围

来源:互联网 发布:决战武林进阶数据弩炮 编辑:程序博客网 时间:2024/05/17 04:56

小数: x0.x1x2x3xn,其中x0 
整数:x0x1x2x3xn,其中x0

首先形成的概念是:原码和反码小数表示的范围是一样的,仅仅是二进制的存储不同罢了。

更有趣的是它们的存储范围是关于零点对称的!

原码小数,反码小数都是:1+2n=<x<=12n

中间是+00两种

x0x1x2x3xn

原码整数,反码整数:(2n1)x2n1//这个很好理解,例证是-127~127

补码里的0只有一种表示,因此多了一个离散状态可以表示其他的数,这个数在小数中是1,整数中是2n 
所以把数据给了最小的那个。 
自然而然就不是对称的。

因此补码小数:1x12n

补码整数:2nx2n1

总结一下三种表示方法的范围:

定点小数:

原码:  -(1-2-nN 1-2-n

反码:  -(1-2-nN 1-2-n

补码:   -1N 1-2-n

 

定点整数:

原码: -(2n -1)N 2n -1

反码: -(2n -1)N 2n -1

补码: - 2n  N 2n -1


0 0