C语言 --- 数据的存储

一、数据类型的介绍

常见的数据类型:

char          //字符型          1字节
short         //短整型          2字节
int           //整形            4字节
long          //长整型          >=4字节
long long     //更长的整形      8字节
float         //单精度浮点型    4字节
double        //双精度浮点型    8字节

类型的作用:

1、决定了开辟内存空间的大小

2、决定了如何看待内存空间里的值(存放在内存里相同的值,不同的类型有不同的解读方法)

值得注意的是:整形又分为有符号整形和无符号整形(这里的整形包括char,short,int,long等)

有符号和无符号的区别在于取值范围的不同

例如:

  • signed int:-2^31 ~ 2^31 - 1  (包含负数,整数范围较小)
  • unsigned int:0  ~  2^32 (不包含负数,正整数范围较大)

构造类型:

数组类型    常见数据类型 [大小] // int arr[10]
结构体类型  struct
枚举类型    enum
联合类型    union

指针类型:

int* p;
char* p;
float* p;
void* p;
...

二、整形在内存中的存储

计算机中整数有三种2进制的表示方法,分别是原码、反码和补码(内存中存放补码)

三种方法都是由数值位和符号位组成,符号位用0表示正,1表示负(最高位为符号位)

  • 正数的原码、反码和补码相同
  • 负数的原码、反码和补码不相同

例如:-1

原码:10000000000000000000000000000001(就是将-1直接用二进制表示)

反码:1111111111111111111111111111111111110(符号位不变,其余位按位取反)

补码:1111111111111111111111111111111111111(反码加一)

三、大小端(数据在内存中以字节为单位的排列顺序)

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

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

例如:

int a = 0x11223344;

在小端模式中,a在内存中的存放如下图

在大端模式中,则应该是11 22 33 44

四、浮点数的存储方法(以float为例)

根据国际标准IEEE(电气和电子工程协会)754,任意一个二进制浮点数V可以表示成下面型式:

(-1)^S * M * 2^E

其中S代表正负,M代表有效数字,E代表小数点的移动

类比科学计数法:123000 = (-1)^0 * 1.23 * 10^5

以float为例,float大小是4字节,共有32个比特位,内存分配如下

 (具体存放方法这里不做解释)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值