我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:热购彩票 > 反码 >

一个二进制问题补码与反码问题。

归档日期:05-14       文本归类:反码      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  追问恩 那就是正数的的反码补码原码都是一样咯? 那反码跟补码原码又有什么用处呢? 25二进制不是11001么???追答25的二进制是11001,但是8位2进制的线用来区别是否是负数(当然,无符号数的话就无所谓了)引入反码补码是用来给计算机计算用的.

  所以用二的补码(其实也就是补码)来表示,1是0001, 0的线 ,相当于计数器翻页一样.

  2011-03-31展开全部3.2. 1s Complement表示法本节介绍一种二进制补码表示法,为了便于理解,我们先看一个十进制的例子:

  首先-52要用999-52表示,就是947,这称为取9的补码(9s Complement);然后把167和947相加,得到114进1;再把高位进的1加到低位上去,得115,本来应该加1000,结果加了1,少加了999,正好把先前取9的补码多加的999抵消掉了。我们本来要做167-52的减法运算,结果变成做999-52的减法运算,后者显然要容易一些,因为没有借位。这种补码表示法的计算规则用一句线的补码表示,减法转换成加法,计算结果的最高位如果有进位则要加回到最低位上去。要验证这条规则得考虑四种情况:

  我们举的例子验证了第二种情况,另外三种情况请读者自己验证,暂时不考虑溢出的问题,稍后会讲到如何判定溢出。

  上述规则也适用于二进制:负数用1的补码(1s Complement)表示,减法转换成加法,计算结果的最高位如果有进位则要加回到最低位上去。取1的补码更简单,连减法都不用做,因为1-1=0,1-0=1,取1的补码就是把每个bit取反,所以1的补码也称为反码。比如:

  1s Complement表示法相对于Sign and Magnitude表示法的优势是非常明显的:不需要把符号和绝对值分开考虑,正数和负数的加法都一样算,计算逻辑更简单,甚至连减法器电路都省了,只要有一套加法器电路,再有一套把每个bit取反的电路,就可以做加法和减法运算。如果8个bit采用1s Complement表示法,负数的取值范围是从10000000到11111111(-127~0),正数是从00000000到 01111111(0~127),仍然可以根据最高位判断一个数是正是负。美中不足的是0的表示仍然不唯一,既可以表示成11111111也可以表示成 00000000,为了解决这最后一个问题,我们引入2s Complement表示法。

  2s Complement表示法规定:正数不变,负数先取反码再加1。如果8个bit采用2s Complement表示法,负数的取值范围是从10000000到11111111(-128~-1),正数是从00000000到 01111111(0~127),也可以根据最高位判断一个数是正是负,并且0的表示是唯一的,目前绝大多数计算机都采用这种表示法。为什么称为“2的补码”呢?因为对一位二进制数b取补码就是1-b+1=10-b,相当于从2里面减去b。类似地,要表示-4需要对00000100取补码,1111+1=10000,相当于从28里面减去4。2s Complement表示法的计算规则有些不同:减法转换成加法,忽略计算结果最高位的进位,不必加回到最低位上去。请读者自己验证上一节提到的四种情况下这条规则都能算出正确结果。

  8个bit采用2s Complement表示法的取值范围是-128~127,如果计算结果超出这个范围就会产生溢出,例如:

  如何判断产生了溢出呢?我们还是分四种情况讨论:如果两个正数相加溢出,结果一定是负数;如果两个负数相加溢出,结果一定是正数;一正一负相加,无论结果是正是负都不可能溢出。

  展开全部如果是正数,原码=反码=补码=二进制数如果是负数,原码的最高位为1,是符号位,除了符号位以外的数都反过来,0变1,1变0就成反码了,补码只要在反码的基础上加上1进行二进制运算即可得到。-25 八位原码=1011001(左边第一位为符号位),反码=1100110(符号位不变,其他都变),补码=1100111(就是加上00000001)

  展开全部25-2进制原码10011001最高位符号位:负数为1,正数为0.

本文链接:http://withewind.com/fanma/117.html