课程信息
课程名称:物联网/嵌入式工程师
章节名:数据的存储
课程内容概述
计算机是0和1的世界,在计算机中,用原码、反码、补码来表示数据。
在内存中的数据使用补码来存储。
存储规则
数据就在内存中总是以二进制补码的形式存放
一般来讲,最高位为符号位。正数为0,负数为1
2. 转换规则
2.1 原码 --> 反码、补码
正数的原码、反码、补码就是它本身
负数的反码 :符号位不变,对原码其它位依次取反
负数的补码 :符号位不变,反码 + 1
2.2 补码 --> 原码
方法1: 原码 = 补码 - 1 ,然后符号位不变,按位取反
方法2: 对补码再求补码可得原码。
3. 存储规则的深入理解
原码 + 原码的反码 =0xff
补码 = 原码的反码 + 1
补码 = (0xff - 原码) + 1
学习心得
原码、反码和补码的出现都是为了解决计算机对整数的编码问题。
原码无疑是最便于人类理解和计算的编码方式,但是对于计算机,原码有加减乘除四种运算方式,更要考虑符号位而实行不同的计算策略,显然会让cpu的设计无比复杂。课程的学习还是需要用心去理解体会,还要多加练习才能深入理解