美文网首页珠玑拾遗
如何理解“正数的补码是其本身”

如何理解“正数的补码是其本身”

作者: 袁承兴 | 来源:发表于2020-12-31 14:20 被阅读0次
1s-and-2s-complement

补数,也叫补码,有“1的补数”和“2的补数”之分,前者多称为“反码”,后者干脆就直接叫“补码”。

为什么计算机系统需要补码,推荐这篇关于2的补码

介绍两者操作细节的文章,也不在少数,本篇不再赘述。但是数次的看到“正数的补码是其本身”这句高亮的句子,着实令人困惑。我在这里尝试解决下。

首先,对于二进制数来说,只要定好了位长,进行反码(1的补数)和补码(2的补数)其实是一件很简单的事情。在纯二进制的表示下,只有0和1,别无他物。0111(4位)的反码就是1000,补码就是1001(反码加1)。所谓正负、符号这些人赋予的意义都不存在,只有二进制数和这些简单操作。

那么,为什么会出现“正数的补码是其本身”这种说法呢?

在计算机中表示负数,如果用最高位表示符号这种“原码”方式,虽然有利于人的阅读,但不利于其本身的计算。所以系统内部就把负数统一用“其对应正数的补码”来表示,而正数自己不用改变。这样变换后,正数虽然形式上没有变,但与原码相比,含义却变了,因为符号位已经不再是符号位了,此时的正数和负数都具有了统一的“补码形式”或称都在一致的“补码编码空间”中。

原码空间到补码空间的转换,并非对每个数点都进行补码运算,只是负数需要,正数不需要而已。

简单来说,“正数的补码是其本身”,这句话想表达含义的意思是,正数在计算机“补码编码空间”中的表示和原码一致。但这绝不等价于“对正数进行补码运算,结果是其本身”。

相关文章

  • 如何理解“正数的补码是其本身”

    补数,也叫补码,有“1的补数”和“2的补数”[https://www.geeksforgeeks.org/what...

  • 补码

    计算机中用补码来表示负数。以Java语言为例,int类型为32位4字节。 怎么求补码? 正数的补码为其本身;负数的...

  • 透彻理解补码

    说在前面的话: 对于补码多数人都是大学里面深深印在脑子里的一句话"正数的补码是其本身,负数的补码是符号位不动,其余...

  • C语言笔记2

    正数的补码就是其原码;负数的补码是其反码加1。例如单字节5的补码为 0000 0101,-5的原码为 1111 1...

  • 原码、反码、补码

    正数 原码:一个数的二进制 反码:正数的反码就是其原码 补码:正数的补码就是其原码 例 负数 原码:一个数的二进制...

  • 计算机基础

    补码正数的补码是它本身;负数的补码是负数的绝对值对应的二进制数值按位取反加一。9:1001-9:0111

  • int数字的表示

    在计算机中int型数字使用补码的形式在存储。首先说明补码的计算方式。正数和零的补码就是他们本身。负数的补码是符号位...

  • 2018-10-22 Python31 原码、反码、补码

    原码、反码、补码 1)如何计算补码?规则: 正数:原码 = 反码 = 补码负数:反码 = 符号位不变,其他位取反补...

  • 原码 反码 补码

    原码:即机器码,没有正负概念,只是单纯的数字 反码:正数的反码是其本身,负数的反码符号位不变其余位置取反 补码:正...

  • 位运算

    原码,反码,补码 原码 正数的原码就是其二进制本身 负数的原码是把对应的正数的原码最高位改为1 反码 正数的反码就...

网友评论

    本文标题:如何理解“正数的补码是其本身”

    本文链接:https://www.haomeiwen.com/subject/rqoloktx.html