0
点赞
收藏
分享

微信扫一扫

C语言---整形在内存中的存储

目录

1.整形家族

2.变量的创建

3. 整形在内存中的存储

3.1原码、反码、补码

3.2 大小端介绍

3.3 写程序判断编程环境是大端还是小端存储

 


1.整形家族

2.变量的创建

        C语言中,变量的创建是需要在内存中开辟空间的(开辟空间的大小是根据不同的类型决定的),而内存中空间类型主要分为三类:栈区,堆区,静态区

不同类型变量在内存中开辟的空间位置如下图:

3. 整形在内存中的存储

       既然已经知道变量的创建是要在内存中开辟空间,那么接下来我们谈谈数据在所开辟内存中到底是如何存储的。

比如:

int a = 20;
int b = -10;

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

下来了解下面的概念:

3.1原码、反码、补码

整数在内存中存储方式以二进制补码形式存储

整数的二进制有三种形式:原码,反码,补码

一个整数占4个字节,相当于32比特位,第一位为符号位,1表示负数,0表示正数。

正数的原码,反码,补码相同

负数的原码,反码,补码要计算

我们看看在内存中的存储:

我们可以看到对于a和b分别存储的是补码。但是我们发现顺序有点不对劲

这是又为什么?

3.2 大小端介绍

什么大端小端
       大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;

       小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。

举个简单例子:

3.3 写程序判断编程环境是大端还是小端存储

#include <stdio.h>
int check_sys()
{
int i = 1;
return (*(char *)&i);
}
int main()
{
int ret = check_sys();
if(ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}



 

 

 

 

举报

相关推荐

0 条评论