今日份学习“数据的存储”
本文简介:
C语言中的数据类型有整型,字符型,浮点型,以及结构体类型,我们知道这些类型是用来专门接收各个类型的数据的,但是这些类型的数据应该放在哪里呢?跟着这篇文章来一一探索。
目录
一,类型的意义
二,类型家族
三,整型在内存的存储方式
四,浮点数在内存中的存储方式
五,大端小段的概念
六,总结
一,类型的意义
C语言中创建一个类型相当于在内存中开开辟了一块空间,而开辟多大的空间取决于是什么类型。
空间开辟好后就可以接收数据了,那么数据在空间内存中是如何存放的呢?这就需要我们用看待内存空间的视角来去观察。
在此之前介绍一下各个类型的家族:
二,类型家族
整型家族 | 浮点家族 | 构造类型 | 指针类型 | 空类型 |
char | float | 数组类型 | char* | void |
unsigned char | double | 结构体类型 struct | int* | |
signed char | 枚举类型 enum | float* | ||
int | 联合类型 union | double* | ||
unsigned int | void* | |||
signed int | ||||
long | ||||
unsigned long | ||||
signed long |
如果要了解他们的取值范围:
整型家族:在<limits.h>中查看
整型家族:在<float.h>中查看
三,整型在内存中的存储方式
计算机中的有符号("signed")整型有三种表示方法:原码,反码,补码
计算机中的无符号("unsigned")整型的原码反码补码都相同
且这三种表示方法均有符号位和数值位两部分
符号位:0表示正 1表示负
数值位:三种表示方法的不相同
原码:直接将整型按正负数的形式翻译成二进制
反码:将原码符号位不变其它位按位取反
补码:反码加一
整数在内存中是存的二进制数的补码,我们查看时展现的是该补码的十六进制数。
在计算机系统中整数数值一律用补码表示和存储,原因在于使用补码可将符号位和数值位统一处理,同时加和减也可统一处理(CPU只有加法)此外补码和原码相互转换其运算过程相同的不需要额外的硬件电路。
✨当一个无符号或有符号数作为循环条件时,应该注意该类型的取值范围以免造成死循环✨
四,浮点数在内存的存储方式
常见的浮点数:3.1415935,1E10=1*1010,float,double..............
根据国际标准IEEE(电器和电子工程协会754)任意一个二进制浮点数“V”表示形式:"(-1)S *M*2E"
1.(-1)s表示符号位,但S=0时V为正数,S=1时V为负数。
2.M表示有效数字,大于等于1小于二(二进制数)
3.2E表示指数位
标签:存储,盒子,整型,浮点数,补码,内存,类型,结构 From: https://blog.51cto.com/u_15993084/6131211