首先说明一下,正数的原码、反码和补码都是一样的,即原码=反码=补码
所以接下来我们主要说负数的原码、反码和补码之间的关系
1.原码 原码就是符号位加上真值的绝对值,即用第一位(最高位)表示符号,其余位表示值。比如:
1的原码00000000000000000000000000000001
5的原码00000000000000000000000000000101
-1的原码10000000000000000000000000000001
2.反码(对负数) 反码等于原码符号位不变,其余位取反(即0变1,1变0)
-3原码 10000000000000000000000000000011
反码 11111111111111111111111111111100
-21原码 10000000000000000000000000010101
反码 11111111111111111111111111101010
3.补码(对负数) 补码=反码+1
-3原码 10000000000000000000000000000011
反码 11111111111111111111111111111100
补码 11111111111111111111111111111101-21原码 10000000000000000000000000010101
反码 11111111111111111111111111101010
补码 11111111111111111111111111101011
4.运算 【原码、反码和补码,这些你都知道吗()】计算机在进行计算时,是补码之间进行运算,最终以原码表示结果。
如2 +(-5)= -3的运算
2的原码00000000000000000000000000000010
反码00000000000000000000000000000010
补码00000000000000000000000000000010
-5的原码 10000000000000000000000000000101
反码 11111111111111111111111111111010
补码 111111111111111111111111111110112+(-5)的运算(补码之间)
00000000000000000000000000000010(2的补码)
11111111111111111111111111111011(-5的补码)
结果 11111111111111111111111111111101(2-5的补码形式)
11111111111111111111111111111100(2-5的补码-1得到反码)
10000000000000000000000000000011(2-5的反码符号位不变,其余位取反得到原码)
10000000000000000000000000000011等于-3(原码表示的就是最终运算结果)
推荐阅读
- 初识C语言(下)
- 初识c语言(上)
- C语言数组
- C语言指针(初阶)
- 单片机|STM32项目设计(基于STM32的DHT11、MQ-2、光照强度检测)
- proteus|基于51单片机计算器设计
- 单片机|基于51单片机HX711的电子秤称重计价proteus仿真程序设计
- 《C语言程序设计》(谭浩强第五版) 第5章 循环结构程序设计 习题解析与答案
- C语言进阶|【C语言进阶7——数组和指针的练习(1) - 学习sizeof 和 strlen,看完这一篇就够了】