C:数据的存储

目录

一、数据类型

二、整型数据在内存中的存储

三、大小端模式

四、浮点型数据在内存中的存储

 

一、数据类型

C语言基本的内置类型有:

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

 类型的基本归类有:

        整型、浮点型、构造类型、指针类型、空类型等。

其中,构造类型有:

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

二、整型数据在内存中的存储

一个变量的创建需要在内存中开辟空间,空间的大小是根据不同的类型而决定的。

然而,数据在所开辟内存中到底是如何存储的?

先介绍三个概念:

计算机中的有符号数有三种表示方法,即原码、反码和补码。

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

1. 原码

直接将二进制按照正负数的形式翻译成二进制。

2. 反码

原码的符号位不变,其他位依次按位取反。

3. 补码

反码+1。

 正数的原、反、补码都相同。

三、大小端模式

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

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

 为什么有大小端模式?

        在计算机系统中,内存是以字节为单位的,每个地址单元对应这一个字节,一个字节为8bit。而C语言中除了8bit的char类型之外,还有16bit的short类型,32bit的long类型,那么必然存在着如何安排多个字节的问题,因此就有了大小端模式。

四、浮点型数据在内存中的存储

浮点型数据有:

float
double
long double

IEEE 754规定:

对于32位浮点数,最高1位是符号位S,接着8位是指数E,剩下23位是有效数字M。

对于64位浮点数,最高1位是符号位S,接着11位是指数E,剩下52位是有效数字M。

任意一个二进制浮点数V可以表示为:

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

(-1)^S表示符号位。当S=0,V为正数;当S=1,V为负数。

M表示有效数字。1<=M<2

2^E表示指数位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值