目录
1.数据类型的分类
在C语言中有如下类型:
2.基本类型
2.1 基本类型大小
一个变量的创建是要在内存中开辟空间的。空间的大小是根据不同的类型而决定的。
类型 / 大小(单位字节) | VS32位平台 | VS64位平台 |
char | 1 | 1 |
short | 2 | 2 |
int | 4 | 4 |
long | 4 | 8 |
long long | 8 | 8 |
float | 4 | 4 |
double | 8 | 8 |
type* | 4 | 8 |
2.2 整型家族~
char 大小范围
unsigned char 0~255 (0--2^8-1)
signed char -128~127 (-2^7--2^7-1)
short
unsigned short [int] 0~65,535 (0--2^16-1)
signed short [int] -32768~32757 (-2^15--2^15-1)
int
unsigned int 0~4,294,967,295 (0--2^32-1)
signed int -2,147,483,648~2,147,483,647 (-2^31--2^31-1)
long
unsigned long [int] (0--2^32-1)(32位) (0--2^64-1)(64位)
signed long [int] (-2^31--2^31-1)(32位) (-2^63--2^63-1)(64位)
2.3 数据的存储形式
数据在计算机中都是以二进制的形式来存储的,而计算机中的整数有三种2进制表示方法,即原码、反码和补码。
整型数据存放内存中其实存放的是补码。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
2.4 整形数据的存储方式
整型的存储有大小端两种方式
大端(存储)模式,是指数据的低位字节内容保存在内存的高地址中,而数据的高位,保存在内存的低地址中;
小端(存储)模式,是指数据的低位字节内容保存在内存的低地址中,而数据的高位,保存在内存的高地址中。
注意:数据存储的单位也是字节
2.3.1 VS平台调试查看存储方式:
总结:
1.VS平台下的数据的存储方式是小端存储模式;
2.整型数据的存储单位是字节,如图十六进制的01020304,低位字节的04在存储时被存储到内存的低地址处,是整个字节放到低地址,字节内部数据的存储不发生变化。
2.3.2 VS平台设计程序查看存储方式:
方法一:指针法(利用了指针强制类型转换)
#include <stdio.h>
int check_sys()
{
int i = 1;//0x 00 00 00 01
return (*(char*)&i);//将整型地址强制类型转换为字符类型的指针,再解引用取一个字节的内容
}
int main()
{
int ret = check_sys();
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
方法二:联合体法(利用了联合体空间共用的特点)
int check_sys()
{
union
{
int i;
char c;
}un;
un.i = 1;
return un.c;
}
int main()
{
int ret = check_sys();
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
在VS平台上的两种程序测试结果: