课程名称:物联网/嵌入式工程师
课程章节:原码、反码、补码的存储
主讲老师:大白
计算机的编码形式,用原码、反码、补码来表示数据。
在内存中的数据使用补码来存储。
规则:
A. 数据就在内存中总是以二进制补码的形式存放。最高位为符号位。正数为0,负数为1 (不完全)
B. 正数的原码、反码、补码就是它本身。原码该数转换位二进制的形式
C. 负数的反码 :符号位不变,对原码其它位依次取反。0变1,1变0
负数的补码 :符号位不变,反码 + 1
补码转源码的方法:
方法1: 原码 = 补码 - 1 ,然后符号位不变,按位取反
方法2:对补码再求补码可得原码。【推荐】
-10 补码:1111 0110 取反:1000 1001 +1: 1000 1010
课后练习:
练习一:假设数据按8bit存储,自己写出-30 的原码、反码、补码形式。
-30: 1001 1110 反码:1110 0001 补码:1110 0010
练习二:有⼀个负数,其补码为1011 0011 ,计算它的原码
1011 0011 -> 1100 1100 -> 1100 1101 -> -77