手记

【备战春招】第四天原码、补码、反码的数据储存

课程内容:

数据储存

简介

在计算机中,用我们的原码、反码、补码来表示数据。在内存中的数据使用补码来存储。

储存规则

A. 数据就在内存中总是以二进制补码的形式存放 。最高位为符号位。正数为0,负数为1 (不完全)

B. 正数的原码、反码、补码就是它本身。原码该数转换位二进制的形式

C. 负数

负数的二进制原码就是正数的二进制,不过符号位变成1了

反码 :符号位不变,对原码其它位依次取反。0变1,1变0

补码 :符号位不变,反码 + 1

注意事项

8bit举例

+10 原码: 0000 1010 8+2

反码: 0000 1010

补码: 0000 1010 在内存中以补码存储

-10 原码: 1000 1010

反码: 1111 0101

补码: 1111 0110 在内存中以补码存储

补码转原码

方法1

原码 = 补码 - 1 ,然后符号位不变,按位取反

示例

-10 补码:1111 0110

-1 :1111 0101

取反:1000 1010

方法2

对补码再求补码可得原码。【推荐】

示例

-10 补码:1111 0110

取反:1000 1001

+1: 1000 1010

数据储存的理解

理解方法

不考虑符号位,原码 + 反码 = 0xff

1111 0110

1000 1001


1111 1111====>0xff

推导步骤

原码 + 原码的反码 =0xff, 而 补码 = 原码的反码 + 1 ,得出 补码 = (0xff - 原码) + 1

根据以上等式可用推导出

*原码的反码 <====>0xff -原码

*补码的反码<====>0xff -补码

同理,改变公式。

原码 = (0xff - 补码) + 1

*可得 : 0xff - 补码 <====>补码的反码

原码 = 补码的反码 + 1===>对补码再求补码可得原码。

学习收获:

理解了数据在内存中的存在形式

收获了原码的反码和补码的转换

截图打卡:

0人推荐
随时随地看视频
慕课网APP