计算机原理中原反补码,计算机原理(原码、反码、补码)

《计算机原理(原码、反码、补码)》由会员分享,可在线阅读,更多相关《计算机原理(原码、反码、补码)(7页珍藏版)》请在人人文库网上搜索。

1、精选文库计算机原理-整数的补码,原码,反码解释一:对于整数来讲其二进制表示没有符号位.一个字节的表示范围为 00000000-11111111,由此可见一个字节的整数表示范围为0,255=2人8 - 1。对于整数来讲,其二进制表示中存在一个符号位.先来看一下下面几个定义:0.1:在计算机中,负数以其正值的补码形式表达。正数即在符号位补 2:原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。3:反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。4:补码:反码+1由以上可以得到.计算机储存有符号的整数时,是用该整数的补码进行储存的,0的原码、补码都是0 ;正数的原码、补码可以。

2、特殊理解为相同;负数的补码是它的反码加1。范围:正数00000000 - 01111111 即0, 2人7 - 1。 负数10000000 - 11111111。范 围说明.11111111 - 1 = 11111110,取反=00000001 即是-1. 10000000 -1 = 01111111,取反 =10000000,即是-128.因此有一个有符号二进制表示范围是从 -128-127.解释二:大家都知道数据在计算机中都是按字节来储存了,1个字节等于8位(1Byte=8bit ),而计算机只能识别 0和1这两个数,所以根据排列,1个字节能代表256种不同的信息,即2人8( 0和1两种可。

3、能,8位排列),比如定义一个字节大小的无符号整数(unsigned char ),那么它能表示的是0255 (02人8 -1 )这些数,一共是 256个数,因为,前面说了,一个字节只能表示256种不同的信息。别停下,还是一个字节的无符号整数,我们来进一步剖析它,0是这些数中最小的一个,我们先假设它在计算机内部就用8位二进制表示为00000000 (从理论上来说也可以表示成其他不同的二进制码,只要这256个数每个数对应的二进制码都不相同就可以了),再假设1表示为00000001 , 2表示为00000010 , 3表示为00000011 ,依次类推,那么最大的那个数255在8位二进制中就表示为最。

4、大的数 11111111,然后,我们把这些二进制码换算成十进制看看,会发现刚好和我 们假设的数是相同的,而事实上,在计算机中,无符号的整数就是按这个原理来储存的,所 以告诉你一个无符号的整数的二进制码,你就可以知道这个数是多少,而且知道在计算机中,这个数本身就是以这个二进制码来储存的。无符号的整数根本就没有原码、反码和补码。只有有符号的整数才有原码、反码和补码的!其他的类型一概没有。虽然我们也可以用二进制中最小的数去对应最小的负数,最大的也相对应,但是那样不科学,下面来说说科学的方法。还是说一个字节的整数,不过这次是 有符号的啦,1个字节它不管怎么样还是只能表示256个数,因为有符号所以我们就。

5、把它表示成范围:-128-127。它在计算机中是怎么储存的呢?可以这样理解,用最高位表示符号位,如果是0表示正数,如果是1表示负数,剩下的7位用来储存数的绝对值的话,能表示2人7个数的绝对值,再考虑正负两种情况,2人7*2还是256个数。首先定义0在计算机中储存为 00000000,对于正数我们依然可以像无符号数那样换算,从00000001到01111111依次表示1到127。那么这些数对应的二进制码就是这些数的原码。到这里很多人就会想,那负数是不是从10000001到11111111依次表示-1到-127,那你发现没有,如果这样的话那么一 共就只有255个数了,因为10000000的情况没有。

6、考虑在内。实际上,10000000在计算机中表示最小的负整数,就是这里的-128,而且实际上并不是从10000001到11111111依次表示-1到-127,而是刚好相反的,从10000001到11111111依次表示-127到-1。负整数在计算机中是以补码形式储存的,补码是怎么样表示的呢, 这里还要引入另一个概念一一反码,所谓反码就是把负数的原码(负数.旳原.码和和它的绝对值所对应的原码相同,简单的说就是.绝对值相.同的数原码.相同一J各个位按位取反,是1就换成0,是0就换成1,如-1的原码是 00000001 ,和1的原码相同,那么-1的反码就是11111110,而补码就是在反码的基础上加。

7、1,即-1的补码是11111110+1=11111111,因此我们可以算出-1在计算机中是按 11111111储存的。0的原码、补1。总结一下,计算机储存有符号的整数时,是用该整数的补码进行储存的, 码都是0,正数的原码、补码可以特殊理解为相同,负数的补码是它的反码加下面再多举几个例子,来帮助大家理解!例:477101111有符号的整数补码原码反码4700101111110100000010111147001011111101000011010001(正数补码和原码相同)(负数补码是在反码上加7关于补码:补码用X 表示机器数(原码),X是真值(二进制)x = +0.1001,则X 原=0.10。

8、01X = -0.1001,则X 原=1.1001对于0,原码中有“ +0 -0”之分,故有两种形式:+0原=0.000.0-0原=1.000.0采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。这是因为,当两数相加时,如果是同号则数值相加;如果是异号,则要进行减法。而在进行减法时还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。为了解决这些矛盾,人们找到了补码表示法。 机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样; 如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。负数用补码表示时,可以把减法转化为加法。这。

9、样,在计算机中实现起来就比较方便X 补=X2 + x= 2 | X |0X 1X = +0.1011,则x 补=0.1011x = -0.1011,则X 补=10+ x= 10.0000-0.1011= 1.0101对于 0, + 0补=0补=0.0000例子中是以定点小数为例。(mod 2)补码的原理可以用钟表来描述如设标准时间为 4点正;一只表已经 7点了,为了校准时间,可以采用两种方法:一是将时针退 7-4=3 格;一是将时针向前拨12-3=9格。即7-3和7+9(mod12)等价,因此,把负数用补码表示的mod2操作,可以把减法转化为加法。补码说明:1、在计算机系统中,数值一律用补码来。

10、表示(存储)。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。补码与原码的转换过程几乎是相同的。数值的补码表示也分两种情况:(1)正数的补码:与原码相同。例如,+9的补码是00001001。(2)负数的补码:符号位为 1,其余位为该数绝对值的原码按位取反;然后整个数-7的补码:因为是负数,则符号位为“1整个为10000111 ;其余7位为-7的绝例如,对值+7的原码0000111按位取反为1111000 ;再加1,所以-7的补码是11111001。已知一个数的补码,求原码的操作分两种情况:(。

11、1)如果补码的符号位为“ 0”表示是一个正数,所以补码就是该数的原码。(2)如果补码的符号位为 “1,”表示是一个负数,求原码的操作可以是:符号位为1 ,其余各位取反,然后再整个数加例如,已知一个补码为11111001示是一个负数,所以该位不变,仍为,则原码是10000111 (-7):因为符号位为 “1,”表“1;其余7位1111001取反后为0000110 ;再加1,所以是 10000111。我在这里介绍一下 模”的概念:模”是指一个计量系统的计数范围。也有一个计量范围,即都存在一个如时钟等。计算机也可以看成一个计量机器,它 模”。例如:时钟的计量范围是 011,模=12。表示n位的计算机。

12、计量范围是02人(n)-1,模=2人(n)。模”实质上是计量器产生 溢出”的量,它的值在计量器上表示不出来,计量器上只能表 示出模的余数。任何有模的计量器,均可化减法为加法运算。例如: 假设当前时针指向10点,而准确时间是 6点,调整时间可有以下两种拨法:一种是倒拨4小时,即:10-4=6 ;另一种是顺拨8小时:10+8=12+6=6在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加 8来代替。对模”而言,8和4互为补数。实际上以12模的系统中,11和 1 , 10 和 2 , 9 和 3, 7和5 , 6和6都有这个特性。共同的特点是两者相加等于模。对于计算机,其概念和。

13、方法完全一样。n位计算机,设n=8 ,所能表示的最大数是11111111,若再加1称为100000000(9位),但因只有8位,最高位1自然丢失。又回了 00000000,所以8位二进制系统的模为 2人8。在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。把补数用到计算机对数的处理上,就是补码。另外两个概念一的补码(ones complement)指的是正数=原码,负数=反码而二的补码(twos com pl eme nt)指的就是通常所指的补码。4、这里补充补码的代数加减运算:(1)补码加法 X+Y补=凶补+ Y补【例 7 】X=+0110011,Y=-0101001 ,求X+Y补X补=00110011 Y补=11010111 X+Y补=凶补 + Y补=00110011+11010111=00001010注:因为计算机中运算器的位长是固定的,上述运算中产生的最高位进位将丢掉,以结果不是100001010,而是 00001010。(2 )补码减法X-Y补=凶补-丫补=凶补+ -Y补其中-Y补称为负补,求负补的方法是:对补码的每一位(包括符号位)求反,最后末位加“1。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值