原码、反码和补码

本是古典 何须时尚 2022-05-14 07:36 242阅读 0赞

原码:

使用高位作为符号位。最高位为0时表示正数,最高位为1时则表示为负数。其余位使用此数字数值本身二进制的绝对值表示。

原码的设计不便于加减运算。

反码:

使用高位作为符号位。最高位为0时表示正数,最高位为1时则表示为负数。正数的反码还是正数本身,负数的反码就是其绝对值相同的正数取反的结果。即在原码的基础上,符号位不变,其他位取反的结果。

反码的设计依然不便于加减运算。

补码:

使用高位作为符号位。最高位为0时表示正数,最高位为1时则表示为负数。正数的补码就是正数本身,负数的补码就是其原码取反加一的结果。补码设计的目的,就是讲将原二进制数,分一半做负数,而取反加一的规律则是在此设计的基础上归纳得来的。所以,使用“取反加一”来定义补码,是与设计相悖的。

补码的设计,方便了二进制的加减运算。

如:7(0111) - 8(1000) = -1(1111);其实就是对应二进制数的相加。

补码的作用其实有两个:

  1. 将原有二进制分一半做负数。
  2. 方便了加减运算。将减法运算转变为加法运算;两个补码相加时,如果高位(符号位)有进位,那么符号位溢出后仍然符合运算规则,即运算结果正确(正如上例所示)。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlbGxvX015RHJlYW0_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,242人围观)

还没有评论,来说两句吧...

相关阅读

    相关 反码补码

    在计算机里面,都是以 补码 的形式来存储数据的,那么可能就会有小伙伴会问,那我们学习补码就行了,为什么还要学习原码和反码呢?举个栗子,我们本来只会中文,但为了去阅读英文书...

    相关 反码补码

    正数的原码反码和补码相同。 负数的反码等于原码除符号位外各位都取反。负数的补码等于反码加1。 在计算机中负数用补码表示。 为什么负数用补码表示? 总结:补码的存在解决了

    相关 补码反码

    一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1、机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符

    相关 反码补码

    关于补码,看过一些书籍和网文,基本都是在“求反加一”的方法、步骤上反复强调,而对于补码的本质和定义,讨论的不足。这就对初学者的造成了误导,使得很多人都纠结在-128的补码求取过

    相关 反码补码

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论

    相关 补码反码

    > 首先提几个概念: 原码,反码,补码  > >     原码是什么? > >       原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码

    相关  补码 反码

    1.正数的原码,补码,反码相同,三码合一 2.符号为 0:正数 1:负数 3.负数的补码是在原码基础上除符号位,各个位取反,补码=反码+1 4.✳计算机底层都以补码