数据在内存中的存储

1.数据类型介绍

1.1类型的基本归类:

整型家族: 

构造类型: 

数组类型

结构体类型struct

枚举类型enum

联合类型union

指针类型:

int *pi;

char*pc;

float*pf;

void*pv;

空类型:

void表示空类型(五类型)

通常应用于函数的返回类型,函数的参数,指针类型

2.整形在内存中的存储: 

2.1原码,反码,补码 

 相信大家理解的差不多了,让我们看看一个例子,会有更深的印象哟~

2.2大小端介绍 (数据需要大于2个字节)

在内存的存储可以任意,只要有需要的时候,把它拿出来可以还原原来的数据即可

eg:

 我们通常使用大小端

大端:数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中

小端:数据的低位保存在内存的低地址中,而数据的高位,保存在内存的高地址中

举个例子:

上图第一个是大端,第二个是小端

设计一个小程序来判断当前机器的字节序

2.3练习 

1,请问该代码输出结果是什么 

int main()
{
	char a = -1;
	signed char b = -1;
	unsigned char c = -1;
	printf("%a=%d,b=%d,c=%d", a, b, c);
	return 0;
}

 解析:

2. 请问该代码输出结果是什么

3请问该代码输出结果是什么

int main()
{
	char a = 128;
	
	printf("%u\n", a);
	return 0;
}

解析:

4 请问该代码输出结果是什么

int main()
{
	int i = -20;
	unsigned int j = 10;
	printf("%d\n", i + j);
	return 0;
}

 解析:

 5 请问该代码输出结果是什么

 6 请问该代码输出结果是什么

int main()
{
	char a[1000];
	int i;
	for (i = 0; i < 1000; i++)
	{
		a[i] = -1 - i;
	}
	printf("%d", strlen(a));
	return 0;
}

解析:

7 请问该代码输出结果是什么

int main()
{
	unsigned char i = 0;
	int main()
	{
		for (i = 0; i <= 255; i++)//因为无符号char范围是0~255,所以无限循环
		{
			printf("hello world\n");
		}
		return 0;
	}
}

 3.浮点型在内存中的存储

任何一个二进制浮点数V可以表现为下面的形式

 eg:

int main()
{
	int n = 9;
	float* pfloat = (float*)&n;
	printf("n的值为:%d\n", n);
	printf("*pfloat的值为:%f\n", *pfloat);
	*pfloat = 9.0;
	printf("num的值为:%f\n", *pfloat);
	return 0;
}

 解析:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值