- 数据类型详细介绍
- 整形在内存中的存储:原码、反码、补码
- 大小端字节序介绍及判断
- 浮点型在内存中的存储解析
数据类型介绍:
内置类型:
- char //字符数据类型 //1个字节
- short //短整型 // 2个字节
- int //整形 // 4个字节
- long //长整型
- long long //更长的整形 // 8 个字节
- float //单精度浮点数 // 4个字节
- double //双精度浮点数 // 8个字节
C99规定中sizeof(long) >= sizeof(int)
32位平台下sizeof(long) 是四个字节,64位环境下是八个字节。
类型的意义:
- 使用这个类型开辟内存空间的大小(大小决定了使用范围)。
- 如何看待内存空间的视角。
类型的基本归类:
整形家族:
-
char
-
unsigned char
-
signed char
-
short
-
unsigned short [int]
-
signed short [int]
-
int
-
unsigned int
-
signed int
-
long
-
unsigned long [int]
-
signed long [int]
-
long long
-
unsigned long [int]
-
signed long long [int]
char为什么也能归到整形家族?
因为char类型在内存中存的是ASCLL码值,是整形。所以划分为整形家族。
小细节:
int a;我们平时这样写的整形变量,其实就是signed int。
那么其它内置类型是不是也可以这样想呢?
除了char类型其它类型就可以这样想。
char类型到底是signed char类型,还是unsigned char?
C语言标准未定义,取决于编译器。
signed 表示有符号的数
unsgned 表示无符号的数
为什么要用signed来表示有符号数呢?
想象下我们生活中有些变动的值,比如温度、湿度等,这时候就需要用正负数来表示。
那么为什么要用unsgned 来表示无符号的数呢?
生活中有些值是正数,并且是不会为负数的。比如说身高、体重