300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 正数 负数求原码 反码 补码

正数 负数求原码 反码 补码

时间:2020-11-24 07:28:15

相关推荐

正数 负数求原码 反码 补码

二进制,有符号数,首位为1的是负数,首位为0的是正数。(规定)

无符号数没有正负之分,所以也没有首位的限制。(规定)

以下示例皆以八位二进制表示)

无符号数

无符号数的原码、反码、补码都一样,皆为该数的二进制表示法

原码 反码 补码

定义

无符号数的原码为该数的二进制表示法

无符号数的反码与原码一样

无符号数的补码与原码一样

举例

1(无符号数)==>0000 0001(原码)==>0000 0001(反码)==>0000 0001(补码)

正数

正数的原码、反码、补码都一样,皆为该数的二进制表示法(同无符号数差不多)

原码 反码 补码

定义

正数的原码为该数的二进制表示法。

正数的反码与原码一样。

正数的补码与原码一样

举例

1==>0000 0001(原码)==>0000 0001(反码)==>0000 0001(补码)

首位为0的表示正数,所以原码、反码和补码的首位都是0

负数

原码

定义

负数的原码为该数对应的无符号数的二进制,将首位置1。

举例

-1==>1(无符号数)==>0000 0001(无符号数的二进制)==>1000 0001(原码,首位置1)。

(负数的首位为1)

反码

定义

负数的反码为该数原码的符号位不变,其它位取反。

举例

-1==>1000 0001(原码)==>1111 1110(反码,符号为不变,其它位取反)。

(负数的首位为1)

补码

定义

1、负数的补码为该数对应的无符号数的二进制取反加一。

2、负数补码(首位为1)减一,取反表示的是这个数的无符号数的二进制。

举例

1

-128==>128(无符号数)==>1000 0000(-128的无符号数的二进制)==>0111 1111(取反)==>1000 0000(补码,加一)(负数的首位为1)

-1==>1(无符号数)==>0000 0001(-1对应无符号数的二进制)==>1111 1110(取反)==>1111 1111(补码,加1)(负数的首位为1)

2

1000 0000(补码) ==> 0111 1111(减一) ==> 1000 000(取反,无符号数128)==> -128(负数)(负数的首位为1)

1111 1111(补码) ==> 1111 1110(减一) ==> 0000 0001(取反,无符号数1) ==> -1(负数)(负数的首位为1)

后记

计算机皆使用补码。用补码计算,符号位也可以参与运算。若以原码计算,符号位参与运算数据会出错,所以还需要标识符号位,会造成电路设计复杂,故抛弃。若以反码计算,会存在+0与-0的问题,而0在人们的常识中是不存在正负之分的,所以也抛弃。

补码取反加一为该数的相反数(补码) eg: 1 ==> 0000 0001(补码)==>1111 1110(取反) ==>1111 1111(加1) ==> -1

因为二进制有位数限制,所以表示的数大小也有限制,8位表示的无符号数返回为0(0000 0000(补码))~256(1111 1111(补码)),有符号数为-128(1000 0000(补码))~127(0111 1111(补码))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。