宏观角度看数字编码

来源:互联网 发布:广联达软件官网 编辑:程序博客网 时间:2024/05/17 04:38

宏观角度看数字编码

@(组成原理)

在二进制的世界中,对数字编码,无论是原码,反码,还是补码,移码等,都是用的二进制的离散状态标记数字。因此,抓住离散状态的分配就抓住了核心。

从原码看起,因为+0和-0是不同概念,浪费了一个编码。反码只是原码反着编,同样浪费了一个。补码呢,就没有这个问题,且因+0都一样,所以-0这个编码就可以用到最小的负数编码上。比如四位整数,数据位占用3位,符号位占用一位,则在原码下,最大正数是0,111B = 7,最小是1,111B = -7。0,000B = 0, 1,000 = -0。反码与原码本身只是各个数据位取反,因此没什么好说的。
补码是原码的取反加一(针对负数,正数相同),因此,我们重点看1,000B, 取反加1:01,000B还是一样的,这个就很特殊。有溢出现象,当然如果不考虑溢出,就可以看出数据位相同。这是原码中-0浪费的一个编码。所以特别需要额外注意补码下,1,000这个编码代表的数字:-8,是四位编码最小的数。

同样,引申到小数中,1.000也是很特殊的存在,标记的是-1,这个小数中可以达到的最小的数。严格说跨入了整数的边界。

至于移码,是对补码进行整体移位得到的编码,因此表达能力与补码相同,只是赋予了一种更直观的大小感受。

0 0
原创粉丝点击