原码、反码、补码之间的转换

时间:2024-03-09 07:10:17

写在前面:

  在日常生活中人们使用的是十进制。“正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过是我们绝大多数人生来具有十个手指头这个解剖学事实的结果。尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚”。而计算机只能识别由0和1组成的二进制数,其最高位是表示正负的符号位。即正数的原码是以0开头,而负数的原码是以1开头。

原码、补码、反码之间的转换:

  • 正数的原码、反码、补码是一致的。(例如:2的原码:0000 0010,那么其反码和补码都是0000 0010)
  • 负数的反码顾名思义,是除了符号位与原码一致,其余位都与原码相反。(例如:-2的原码是1000 0010,那么其反码是1111 1101),负数的补码则是在其反码的基础上加1。(例如:-2的反码是1111 1110)