c语言二进制的源码,反码,补码

在计算机中所有的数据都是以二进制形式存储的。但是它是怎样存储在内存中的呢?

是以补码的形式存储的。

什么是补码呢?

在弄清楚什么是补码之前先得了解“符号位”和“源码”和“反码”

什么是符号位?

int a = 10;

int b = -10;

它们对应的二进位是

a: 00000000 00000000 00000000 00001010

b: 10000000 00000000 00000000 00001010

可以看到除了第一位其它位都一样

第一位为0就是正数,第一位为1就是负数

这就是所谓的“符号位”

什么是源码?

其实a的源码就是00000000 00000000 00000000 00001010

b的源码也一样是10000000 00000000 00000000 00001010

什么是反码了?

在正数中源码和反码相同

负数中反码为源码符号位不变其它位按位取反

b的反码为11111111 11111111 11111111 11110101

正数和负数的补码不一样。

正数的源码和补码一样;

负数补码就是反码加一。

b的补码为11111111 11111111 11111111 11110110

总结:

正数的源、反、补相同

负数的源码等于补码取反加一,补码等于源码取反加一

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值