数据类型
问:为什么要对数据分类
1、现实社会中的数据就是自带类别属性(就如同汉语中的量词,方便定义计量,也方便理解)
2、对数据类型进行分类可以节约存储空间、提高运行的效率和速度
存储空间的单位:
bit 比特 存储0或者1 一个比特存一个二进制,计算机存储数据的最小单位
Byte 字节 八个二进制位组成,计算机存储数据的基本单位
KB 1024字节
MB 1024KB
GB 1024MB
TB 1024GB
PB 1024TB
有关于B和b差异的个人理解:
在做记录的时候注意到了这个事情,在之前计算机相关课程也有碰到过相关的考试,考校大小写之间的差异,但是一般在日常生活中,上升到K,M,G这些单位之后一般性的都认为基础单位是字节而非比特,虽说如Kb这样小b的写法也能才日常中被人理解,但是从源头来看个人觉得诸如KB,MB,GB这样的采用大写B的计量单位更为标准
C语言中数据分为两大类:自建(程序员自己设计的:结构、联合、类)和内建(C语言自带的)
注:可以使用sizeof运算符计算类型的字节数
整型:
有符号 signed
signed char 1 -128~127
signed short 2 -32768~32767
signed int 4 ±20亿
signed long 4/8
signed long long 8 ±9开头的一个19位整数 9,223,372,036,854,775,807
注意: signed 不加就代表加
无符号 unsigned
unsigned char 1 0~255
unsigned short 2 0~65535
unsigned int 4 0~40亿
unsigned long 4/8
unsigned long long 8 0~1开头的20位整数
注意: 由于定义无符号数据是比较麻烦,标准库把这些无符号的类型重新定义后成了以下类型:
使用时需要包含头文件:stdint.h
uint8_t uint16_t uint32_t uint64_t
int8_t int16_t int32_t int64_t
char short int long long
浮点型:
float 4
double 8
long double 12/16
注意:浮点型数据都是采用科学计算方法,二进制与真实数据之间需要进行换算,因此浮点型数据耗时要比整型数据多得多,编程时尽量选择整型
小数点后六位有效
time ./a.out 计算程序的运行时间
模拟型:
字符型char
字符其实就是符号或图案 "1":整数或字符 内存中存储的是整数,当需要显示成字符时会根据ASCII码表中对应的关系显示出相应的符号或图案
'\0' 0
'0' 48
'A' 65
'a' 97
布尔型bool
现有C语言之后才有了bool类型,所以C语言中是不可能有真正的布尔类型,所有的布尔类型都是模拟出来的,只有加 stdbool.h 头文件对布尔类型进行模拟
bool true false