目录:
一丶数据类型
二丶整型的存储
三丶大小端字节序
四丶浮点型的存储
数据类型:
基础类型:
char //字符数据类型
short //短整型
int //整形
long //长整型
long long //更长的整形
float //单精度浮点数
double //双精度浮点数
构造类型:
数组类型
结构体类型 struct
枚举类型 enum
联合类型 union
指针类型:
int *
char *
float *
void *
空类型:
void
一般用于函数的返回类型,函数的参数,指针类型
整形在类型中的存储:
计算机中的整数有三种
2
进制表示方法,即原码、反码和补码。
三种表示方法均有
符号位
和
数值位
两部分,符号位都是用
0
表示
“
正
”
,用
1
表示
“
负
”
,而数值位
正数的原、反、补码都相同。
负整数的三种表示方法各不相同。
对于整形来说:数据存放再内存中,其实存放的是补码
原因: 在计算机系统中,(整)数值一律用补码来表示和存储,原因在于,使用补码,可以将符号位和数值域同意处理,同时,加法和减法也可以统一处理(cpu只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
大小端字节序介绍:
在计算机系统中,我们是以字节为单位的,每个地址单元 都对应着一个字节,一个字节为8 bit
。但是在
C
语言中除了
8 bit
的
char
之外,还有
16 bit
的
short 型,32 bit
的
long
型(要看具体的编译器),另外,对于位数大于
8
位的处理器,例如
16
位或者
32 位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。
大端字节序存储:
将一个数据的低位字节存储在内存的高地址处,高位字节存储在低地址处
小端字节序存储:
将一个数据的低位字节存储在内存的低地址处,高位字节存储在高地址处
浮点型的存储:
浮点型包括(float ,double,long double)
根据国际标准
IEEE
(电气和电子工程协会)
754
,任意一个二进制浮点数
V
可以表示成下面的形式:
(-1)^S * M * 2^E
(-1)^S
表示符号位,当
S=0
,
V
为正数;当
S=1
,
V
为负数。
M
表示有效数字,大于等于
1
,小于
2
。
2^E
表示指数位。
例如:
十进制的
5.0
,写成二进制是
101.0
,相当于
1.01×2^2
。
那么,按照上面
V
的格式,可以得出
S=0
,
M=1.01
,
E=2
。
十进制的
-5.0
,写成二进制是
-
101.0
,相当于
-
1.01×2^2
。那么,
S=1
,
M=1.01
,
E=2
。
IEEE 754
规定:
对于
32
位的浮点数,最高的
1
位是符号位S
,接着的
8
位是指数
E
,剩下的
23
位为有效数字
M
。
对于
64
位的浮点数,最高的
1
位是符号位S,接着的
11
位是指数
E
,剩下的
52
位为有效数字
M