为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
嵌入式

课程内容:

数据储存

简介

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

储存规则

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===>对补码再求补码可得原码。

学习收获:

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

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

截图打卡:

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消