计算机运算基础二数的补码表示法

出处:考试大 作者:水自流 日期:2007年07月19日 10时34分

二、 数的补码表示法

数的正负号用 0和1表示,使正负号和数值全部数字化了。既然如此,能否将正负号和数值放在一起进行运算,而不因正负号的不同分别处理呢?为此,提出计算机数的补码表示法。数据的这种表示形式大大地简化了运算的处理过程。

那么什么是补码呢?我们先看一个例子,假定现在时钟上的读数是 10点钟,问4小时之前是几点钟?即时钟上的读数是什么。答案是显而易见的,为:10 - 4 = 10 +(- 4)= 6(点)。但是,这完全可以换一种算法得到同样的结果:10 + 8 = 18(点)。显然,18(点)在时钟刻度盘上的读数是6(点)。常识告诉我们,时钟最大只能表示到12,超过12时就把12丢掉,再从0开始,即到达12时又复位为0 。上式中的8是 12 - 4的结果;也即4是相对于12 的"补数"。因此,上式可表示为取模运算: 10 - 4 = (10 + 8 )Mod (12) = 6 。

( 1)数的原码表示:原码是最简单的计算机数表示法。

对正数,符号位 = 0 ,数值位 = 数的绝对值。+0100101 的原码为:00100101

对负数,符号位 = 1 ,数值位 = 数的绝对值。

- 0100101 的原码为:10100101

- 10100101=10000000( 2 7 ) - (- 0100101) = 100000000 + 0100101 = 10100101

原码的生成公式为:


 

( 2)数的反码表示:

对正数:同原码表示 。如, +0100101 表示为00100101。

对负数,先将其表示为绝对值(正数)的原码,然后将每一位的数变反,即 0变为1,1变为0 。如,- 0100101 的反码是:先表示为00100101 ,取反后为11011010。这个结果恰相当于计算11111111 ( 2 8 - 1 ) + (- 00100101) = 11111111 - 00100101 = 11011010。

反码的生成公式为:


 

( 3)数的补码表示

对正数,同原码表示 。如, +0100101 表示为00100101。对负数,先将其表示为反码,然后在该反码的最低位加“1”,即得到它的补码 。

如, - 0100101 先将其表示为反码为11011010 ,再在最低位加“1”得补码为11011011。这个结果恰相当于计算

100000000( 2 8 )+(-00100101) = 11011011

补码的生成公式为:

最后更新时间:2008-05-28 12:03:07
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程