整型在内存中的存储——原码、反码、补码

原码、反码、补码

前言

我们都知道计算机里只能存储二进制数,也就是意味着计算机只认识0和1。
比如int a = 73;这条语句的意思是把十进制数73的二进制代码放在a里。而不是直接把73这个十进制数放进去。
而不同的类型的数据存储在计算机时转化成二进制的形式也不一样,转化成二进制的形式有原码、补码和反码。


各数据类型存储方式

1.整型以补码的形式转化成二进制代码从而存储在计算机里的;
2.字符的存储方式从本质上来说和整型的相同,字符先按照ASCLL码转化成所对应的十进制整数,然后在按照整型的存储方式进行转化。
3.实数则按照二进制浮点数算术标准(IEEE 754)转化成二进制代码存储在计算机里的;


原码、反码、补码概念

因此我们来讨论一下整型的存储方式,我们已经知道整型是以补码的形式转化成二进制代码来存储在计算机里的。那么什么是补码呢?什么又是原码、反码呢?
原码:原码又叫做“符号绝对值”码,从它的名字来看,它是有符号的,在原码里面最高位是符号位,而其他的位就是这个整数的二进制数,符号位上如果是0则表示这个整数为正,1表示为负。正整数的原码就是它的二进制。例如:7的二进制位0111,它的原码也就是0111.那么-7呢?由于7的二进制数是0111,而1表示负数,因此-7的原码为10111.
正整数的原码、补码、反码相同。
反码:将原码除了符号位之外的所有位按位取反,也就是原码的最高位不变,剩下的1变成0,0变成1。
补码:原码虽然看起来比较简单。但是也应该清楚越简单所能实现的功能也就比较弱,它比较弱,那么就会增加CPU的压力。另外,对于0来说,使用原码,可以写成10000,也可以写成00000.如果采用补码,补码的所有运算都可以变成加法。因此补码完胜原码,并且原码在计算机里面没有被使用过。


原码、补码、反码的计算

正整数原码:为这个整数的二进制数
eg:
在这里插入图片描述

负整数原码:这个整数的绝对值的二进制数然后在最高位加上1
eg:
在这里插入图片描述

正整数反码:与它的原码相同。
eg:
在这里插入图片描述

负整数反码:这个整数的原码的符号位不变,其他的位按位取反
eg:在这里插入图片描述

正整数补码:与它的原码相同;
eg:在这里插入图片描述

负整数补码:它的原码+1;
eg:
在这里插入图片描述
如果已经知道了一个整数的补码,要求出其原码。则求补码的补码

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小酥诶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值