原码反码补码(原码反码补码怎么算)

更新时间:2023-03-02 08:32:33 阅读: 评论:0

问题

原码、反码、补码都是什么?

二进制

二进制就是「逢二进一」,跟十进制没有什么本质区别。

二进制转换到十进制

1001 = 2^3 + 0^2 + 0^1 + 1^0 = 9

十进制转换二进制,可以使用短除法,下面演示13转换成二进制1101

原码

是指一个二进制数左边加上符号位所得到的码,二进制数大于0时,符号位为0,二进制数小于0时,符号位为1。

计算机中所有的数均用0、1编码表示,数字的正负号也不例外,如果一个机器数字长是n位的话,约定最左边一位用作符号位,其余n-1位用于表示数值。

小数原码定义

例如:[+0.1011]原 = 0.1011000,[-0.1011]原 = 1.101100

代码中的小数点“.”是在书写时为了清晰起见加上去的,在机器中并不出现。

整数原码定义

例如:[+1011]原=00001011,[-1011]原=10001011

原码优点

简单直观;例如,我们用8位二进制表示一个数,则+11的原码为00001011,-11的原码就是10001011。

原码缺点

原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中00000001+10000001=10000010,换算成十进制为-2。显然出错了。

补码

是一种用二进制表示有符号数的方法,也是一种将数字的正负号变号的方式。

下面用4位的补码数字来说明补码系统的数字表示方式。

在表示正数和零时,补码数字和一般二进制一样,唯一的不同是在补码系统中,正数的最高比特恒为0,因此4位的补码正数,最大数字为0111 (7)。

补码数字的负数,最高比特恒为1,4位补码的数字中,最接近0的负数为1111 (-1),以此类推,因此绝对值最大的负数是1000 (-8)。

以上的表示方式在电脑处理时格外方便,用以下的例子说明:

0011 (3) + 1111 (-1) -------------- 10010 (2)

10010似乎是错的,但是结果超过四个比特,忽略第五个比特,结果是0010(2),跟计算结果是一样的。

另外还可以将1111变号为0001(1),那上面的是式子也可以当作减法计算3-1=2,结果还是一样的。

原码求补码

在计算二进制数字的补码时,会将数字进行比特反相运算,再将结果加1,不考虑溢出比特(一般情形,溢出比特会为0),就可以得到该数字的补码。

正数和0的补码就是该数字本身。

负数的补码则是将其对应正数按位取反再加1。

-5 => 对应整数 => 00000101 => 按位取反 => 11111010 => +1 => 11111011补码求原码

正数原码就是补码

负数的原码就是补码的补码

11111011(-5) => 按位取反 => 10000100 => +1 => 10000101 => -5反码

是用来由原码求补码或者由补码求原码的过渡码。

正数的反码与其原码相同。

负数的反码是对正数逐位取反,符号位保持为1。

本文发布于:2023-02-28 21:01:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1677717153100646.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:原码反码补码(原码反码补码怎么算).doc

本文 PDF 下载地址:原码反码补码(原码反码补码怎么算).pdf

标签:反码   补码   原码
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|