原码 反码 补码

在c语言中,我们用sizeof已经得知整数类型的字节大小是4,显而整数的字节大小亦为4,32个bit

而整数有正数和负数之分。而只要是整数,计算机内存中存储的是二进制的补码,而计算机运行后显示的结果是二进制的原码。

我们就由正数2来进入原码 反码 补码的学习

首先规定正数的原码 反码 补码 是一样的,以正数2的原码来入题

正数2的原码为

00000000000000000000000000000010(这是32个二进制数组成)

在上面由32个(1或0)组成的原码中 第一位是标识符,当标识符为0时,则十进制数为正数

当标识符为1时,十进制数为负数。

由于正数的原码 反码 补码都是一样的,这里就不过多简述了。

重点是负数的原码 反码 补码(这三个是不一样的)

在计算机内存中存储的是负数的补码,但是运行后的结果显示的屏幕上是负数的原码

那么负数之间原码 补码之间是如何转化的呢?

原码反码补码
符号位不变其余位按位取反得到反码反码+1得到补码
符号位不变其余位按位取反得到原码补码-1得到反码

来个例子来解释

如-2 原码如下

10000000000000000000000000000010

转化为反码(原码按位取反)就是

11111111111111111111111111111101

转化为补码(反码+1)就是

11111111111111111111111111111110

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值