c语言进阶(1)——数据在内存中的存储

类型的意义

1.使用这个类型开辟空间的大小(大小决定了使用的范围)。
2.如何看待空间的角度。

1.数据类型分类

1.1 整形家族

char : unsigned char ; signed char
short : unsigned short [int]; [signed] short [int]
int : unsigned int; [signed] int
long: unsigned long [int]; [signed] long [int]

1.2浮点数家族

float
double

1.3构造类型

数组类型
结构体类型 struct
联合类型 union
枚举类型 enum

1.4指针类型

int *pi;
char *pc;
float *pf;
void *pv;

1.5空类型

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

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

2.1原码,反码,补码。

内存以整数的补码形式储存意义

①使用补码,可以将符号位和数值域统一处理;
②加法和减法可以统一处理(CPU只有加法器);
③补码和原码相互转化 ,其运算过程相同,不需要额外的硬件电路。

负整数

符号位是1
原码:将整数部分变成二进制数。
反码:除符号位的数,其它的按位取反。
补码:反码加1。

正整数+0

符号位是0
原码、反码和补码相同

2.2大小端介绍

大端存储(大端字节序存储):把数据低位字节的内容放到高地址处,高位字节放到低地址处。
小端存储(小端字节序存储):把数据低位字节的内容放到低地址处,高位字节放到高地址处。

2.3无符号整数

就是整数大于等于0,没有符号位

2.4整形提升

对于无符号整数,前面补0;
对于有符号整数,前面补符号位;
对于某个数的整形提升,看声明的时候使用是什么数据类型;
%d是以有符号整数来打印的;
%u是以无符号整数来打印的;
注意:使用无符号整数的时候注意它的值的范围;

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

3.1浮点型的统一表示形式

(-1)^S * M * 2 ^ E
S=0表示正数、S=1表示负数;
M表示有效数字,大于等于1,小于2;
2^E表示指数位。

3.2浮点型以SEM来存入内存

单精度浮点型:float
在这里插入图片描述
双精度浮点型:double
在这里插入图片描述

3.3相关规定

(1) 1≤M<2 ,也就是说,M可以写成 1.xxxxxx 的形式,其中xxxxxx表示小数部分。
(2)E是无符号整数
8bit:求出的E+127后的二进制存入内存;
11bit:求出的E+1023后的二进制存入内存。
(3)E的取出规则
不全为0或1:减去127(或1023);M区的数字前加 1.XXXX;
全为0:M区的数字前加 0.XXXX,无穷小±0;
全为1:无穷大。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

杰深入学习计算机

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

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

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

打赏作者

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

抵扣说明:

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

余额充值