计算机补码概念,计算机补码概念剖析

以现实生活中的形象例子“时钟”为例,引入了补码的基本概念

软件时空

您的论文得到相关企业家品评

计算机补码概念剖析

AnalysisingComplementaryCodeoftheComputer

(1.临沂师范学院;2.临沂市职业技能学校)

张德伟

沈培锋

张德珍

吕月娥

Zhang,DeweiShen,PeifengZhang,DezhenLv,Yue′e

摘要:以现实生活中的形象例子“钟表”为例,引入了补码的

基本概念,并从多个角度剖析了计算机中的补码概念。补码的主要用途本质上是要把负数转化为正数,把减法运算转化为加法运算,从而提高计算机的运行速度。本文从多个角度帮助读者解决了几个容易迷惑不清的问题。关键词:补码;模;原码;字长

文献标识码:A中图分类号:TP322

文章编号:1008-0570(2005)10-3-0177-02

通过这个现实生活中的简单例子,我们可以得出一个什么结论呢?无非就是在定义了“模”的前提下,可把负数转化为正数,再深入一步就是可把减法转化为加法。上例中当模取为12时,-9=-9+12=+3(MOD=12),所以3-9=3-9+12=3+3,即减法转化成加法。用一般公式可表示为:a-b=a-b+MOD=a+(MOD-b)。下面就可以引入计算机中“补码”的定义了,若X为计算机中一个机器数真值,则[X]补=2n+X(其中2n为模,n为字长,字长是指包括符号位在内的二进制位数,此处仅以整数加以说明)。请看下面举例:

Abstract:Throughtheimaginaryexampleclock,thepaperintro-ducestheconceptofcomplementarycode.Italsoanalysisescomplementarycodeofthecomputermanysided.Infact,com-plementarycode'smainuseischangingtheminusintoplus.Intheend,itcanturnsubtrationintoadditionandenhancecomputer'svelocity.Thepaperhelpsreaderssolveseveralproblemswhichmakethempuzzle.

Keywords:ComplementaryCode;Mod;OriginalCode;lengthofthewords

引言

补码概念是计算机领域中所特有的一个概念,但又是一个比较难以理解的概念,很多人对它的引入和用途理解不清,本文通过一些形象的例子,从几个方面帮助读者真正解除迷惑,理解补码的内涵。

(1)若X=+1011,则[X]补=2n+X=25+1011=100000+1011=0,1011

,最高位的1溢出)(逗号只是为了突出符号位“0“

(2)若X=-1011,则[X]补=2n+X=25-1011=10000-01011=1,0101

(逗号也只是突出符号位“)1”

(3)若X=+0000,则[X]补=2n+X=25+0000=0,0000(最高位的1溢出)

(4)若X=+0000,则[X]补=2n+X=25-0000=0,0000(最高位的1溢出)

通过以上四个例子可以得出三个重要结论:

技术创新

1补码概念的引入

在介绍补码概念之前,先给大家举个类似补码的形象例子,或许看完这个例子,会让你感觉补码不再陌生、神秘。

如图一所示,此时钟表指示为三点整

1-346-png_6_0_0_49_821_110_137_830.4_1176-307-0-1539-307.jpg

,因为表针做顺时针方向转动

1-229-png_6_0_0_655_941_132_105_830.4_1176-366-0-2111-366.jpg

,一般假设顺时针方向为正,则易知此时钟表指示为+3。那么大家考虑:若表针按逆时针方向转动,时针需走多少格可以走到图示3点整位

置?很简单,数数便知:9个格!所以

不妨可记为-9(因为方向为逆时针,理所应当取为负)。此时可列出一个等式,即-9=+3。当然这是在钟表一周刻度为12的前提下得出的结论。其实这就相当于-9=-9+12=+3,其中12可以叫做计算机中的术语模”“(MOD)。张德伟:讲师

电话:010-62132436,62192616(T/F)

(1)求正数的补码很简单,只须在机器数前添个符

号位“即可;0”

(2)负数的补码用定义求比较复杂,需要做一次减法运算,后面将介绍更为简捷的方法;

(3)正零和负零的补码形式是一致的,即零的补码具有惟一性。

2快捷法求负数补码

在此要重申的是“负数的补码”。用定义法求负数的补码比较复杂,下面介绍一种简捷快速的求法,即找出机器数真值中最末一个1,该1及其右边的0不变,而其前面各位取反即得,当然不要忘了前面添上符号位“。根据上述快速求补1”码的方法很容易求出-10110的补码为1,01010。如图二所示。

通过以上分析不难看出,正数和零的补码与其真值数值是相同的,只不过前面添个符号位

而已;而负数的补码则发生了较大的变化,数值部“0”

分不再与真值相同。

中国自控网:http://www.autocontrol.cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值