首页 补码原理

补码原理

举报
开通vip

补码原理补码原理 引入补码之后,减法运算可以用加法来实现,且数的符号位也可以当作数值一样参与运算(为什么?)还有补码运算后仍为补码(为什么?) 正数:原码=反码=补码; 负数:补码=反码+1。 (2)因为计算机就是用数的补码表示数来运算的,所以补码运算后仍为补码。 (1)因为第一位数表符号,0表示正号,1表示负号,所当计算一个数加数加上一个负数时(用原码计算时),第一个表负号的数不参与运算,而是把其余七位相减,再考虑其符号。引入补码后,因原码=-补码,所以当某个数减去另一个数的原码时就相当于加上另一个数的补码且表符...

补码原理
补码原理 引入补码之后,减法运算可以用加法来实现,且数的符号位也可以当作数值一样参与运算(为什么?)还有补码运算后仍为补码(为什么?) 正数:原码=反码=补码; 负数:补码=反码+1。 (2)因为计算机就是用数的补码表示数来运算的,所以补码运算后仍为补码。 (1)因为第一位数表符号,0表示正号,1表示负号,所当计算一个数加数加上一个负数时(用原码计算时),第一个表负号的数不参与运算,而是把其余七位相减,再考虑其符号。引入补码后,因原码=-补码,所以当某个数减去另一个数的原码时就相当于加上另一个数的补码且表符号的第一位可参与运算也必须参与计算,因为补码本来就是全部位数都得参与运算的。 以八位的为例,对于2进制,无符号可以表示2^9=512个数,有符号只能表示2^8=256个数。 左边第一位为符号位,0表正数,1表负数,其余7位表数值。 原码:+0=00000000(原码);1=00000001;2=00000010;3=0000011;……;126=01111110;127=01111111。-0=10000000;-1=10000001;……;-126=11111110;-127=11111111。 对于补码来说-0?10000000即没有-0,而是-128=10000000。 正数补码还是和原码一样:0=00000000(补码);1=00000001;2=00000010;3=0000011;……;126=01111110;127=01111111。而负数的补码却是:-128=10000000;-127=10000001;-126=10000010;……;-2=11111110;-1=11111111。 对于反码,正数的还和原码一样,而负数则表符号的第一位不变,其余各位取反;即 0=00000000(反码);1=00000001;2=00000010;3=0000011;……;126=01111110;127=01111111。而负数的反码却是:-127=10000000;-126=11111101;……;-2=11111101;-1=11111110。 本来111111111+1=100000000,因为在计算机中只有八位数,所以第一位1被舍去(即溢出), 就变成11111111+1=00000000,即-1+1=0。还有01111111+1=10000000.,即127+1=-128,出现这种原因是因为它位数是有限的,就像今天是星期一,明天就变为星期二一样,到了星期日再加一天又变为星期一了,即1+1=2,……6+1=7,7+1=1。也像时钟一样1-12循环往复。 即 00000000(0) 00000001(1) 00000010(2) …… 01111111(127) 10000000(-128) 10000001(-127) …… 11111110(-2) 11111111(-1) 00000000(0) 00000001(1) …… 随便举个例子来说:如-86=11010110(原码)其反码为-86=10101001(反码) 其补码为-86=10101010(补码),由于对于反码,正数的还和原码一样,而负数符号的第一位不变,其余各位取反,所以 而11010110(-86的原码)(此为-42的补码)+10101001(-86的反码)(-87的补码)=11111111(-1) (如果第一位算进去则上式等于01111111(127)因为没-129) )=0 即11010110(原码)+10101001(反码)-11111111(-1 即11010110(原码)+10101001(反码)+00000001(1)=0 也即:原码+反码+1=0,原码=-(反码+1),令补码=反码+1,则:原码=-补码 又11010110(原码)+10101010(补码)=0 因为第一个数表符号,0表示正号,1表示负号,所当计算一个数加数加上一个负数时(用原码计算时),第一个表负号的数不参与运输,而是把其余七位相减,再考虑其符号。引入补码后,因原码=-补码,所以当某个数减去另一个数的原码时就相当于加上另一个数的补码且表符号的第一位可参与运算也必须参与计算,因为补码本来就是全部位数都得参与运算的: 如2-1=2+(-1)=1具体如下 00000010(2)-00000001(1)=00000010(2)+10000001(-1的原码)(不可直接相加!)(1表示负号,所以此计算相当与00000010(2)-00000001(1)也就是前一个式子)=00000010(2)+11111111(-1的补码)(计算机中的这类数就是用补码算的)=00000001(1) 所以就可以实现引入补码之后,减法运算可以用加法来实现,且数的符号位也可以当作数值一样参与运算。 总之:正数的原码、反码、补码都一样;负数的反码是第一个符号位不变其余各位取反,补码就是它的反码加一。因为计算机就是用数的补码表示数来运算的,所以补码运算后仍为补码; 因为第一位数表符号,0表示正号,1表示负号,所当计算一个数加数加上一个负数时(用原码计算时),第一个表负号的数不参与运算,而是把其余七位相减,再考虑其符号。引入补码后,因原码=-补码,所以当某个数减去另一个数的原码时就相当于加上另一个数的补码且表符号的第一位可参与运算也必须参与计算,因为补码本来就是全部位数都得参与运算的。
本文档为【补码原理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_105949
暂无简介~
格式:doc
大小:15KB
软件:Word
页数:0
分类:
上传时间:2018-10-04
浏览量:6