返回

整型数据在内存中的存储

发布时间:2023-01-31 16:07:21 117
# 数据

引言:

int a=20;
int b=-10;

我们知道为a分配四个字节的空间。那如何存储?

下来先了解下面的概念

一、原码反码补码

计算机中的有符号数(是整型,与浮点数在内存中的存储无关)有三种表示方法,即原码反码补码。

三种表示方法均有符号位数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位三种表示方法各不相同。

辨析:

有符号数分为正数和负数,正数和无符号数一样,原码反码补码相同,只有有符号数中的负数三者才不同。

整型数据在内存中的存储_反码

原码:

直接将整型按照正负数的形式翻译成二进制即可

反码:

将原码的符号位不变,其他位依次按位取反就可以得到

补码:

反码+1就得到补码。

例子:

整型数据在内存中的存储_补码_02

二、对于整型来说:数据存放内存中其实存放的是补码

为了验证,我们将-20的补码转化为十六进制位

整型数据在内存中的存储_数据_03

如何将二进制位转化为十六进制:

4个二进制位表示一个十六进制位

以补码形式存储的原因:

在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理(CPU只有加法器);此外补码和原码可以相互转换,其运算过程是相同的。

举个例子:

整型数据在内存中的存储_反码_04

发现补码计算的结果是正确的!

三、大端小端存储方式

大端(存储)模式:(大端字节序存储模式)

指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;

小端(存储)模式:(小端字节序存储模式)

指数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中。

内存的低地址和高地址:

一般内存块左边就是低地址,右边是高地址。

数据的高位和低位:

与平常理解的高位和低位意义相同,例如正数123,1就是百位就是高位,而3是个位,就是低位!

我们描述的是字节存放的顺序,而不是比特位存放的顺序!

整型数据在内存中的存储_补码_05


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
Python与小熊猫Dev-C++海龟作图比较 2023-01-31 15:31:32