目录
1.数据类型介绍
数据类型基本分为
char ---- 字符数据类型
short ---- 短整型
int ---- 整形
long ---- 长整形
float ---- 单精度浮点型
double ---- 双精度浮点型
1.1 类型的基本归类
整形
char
unsigned char
signed char
short
unsigned short
signed short
int
unsigned int
signed int
long
unsigned long
signed long
浮点型
float
double
构造类型
数组类型
结构体类型 struct
枚举类型 enum
联合类型 union
指针类型
char *
int *
float *
void *
空类型
2.整形在数据中的存储
2.1 原码 反码 补码
计算机整数中有三种表示方法,即原码,反码,补码
三种表示方法均有"符号位"和"数值位",符号位中0表示正,1表示负
负整数的三种表示方法
原码
直接将二进制的正负数形式翻译成二进制就可以了
反码
在原码的基础上符号位不变,其他位按位取反
补码
反码的基础上加1
正整数的原码,反码,补码均相同
2.2 大小端介绍
大端(存储)模式,指的是数据低位的保存在内存的高地址,而数据的高位保存在低地址中
小端(存储)模式,指的是数据低位的保存在内存的低地址,数据的高位保存在高地址中
写一个程序判断当前编译器的大小端
#include<stdio.h>
int check_sys()
{
int a = 1;
return (*(char*)&a);
}
int main()
{
int ret = check_sys();
if (ret == 1)
{
printf("小端");
}
else
printf("大端");
}
3.浮点型在内存中的存储
浮点型的存储规矩
根据国际标准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。