数据和C
C语言提供俩大数据类型:整数类型 和 浮点数类型 。
整数类型
<1>
基本类型:
int ——C语言给定的基本整数类型,规定int类型大小不小于16位。转换说明: %d ,范围 -32768~32767
short / short int ——-C语言规定short至少占16位,并小于或等于最大的int类型。 转换说明: %hd , 对于short类型可以用 h 作前缀
long / long int ———–C语言规定long至少占32位,并大于或等于最大的int类型。转换说明: %ld , 对于long类型可以用 l 作前缀
long long / long long int ———-long long类型至少占64位,并大于或等于最大的long类型。转换说明: %lld , 对于long long类型可以用 ll 作前缀
unsigned int / unsigned ————只应用非负数的场合,并且能代表更大的数,范围 0~65535。转换说明: %u
unsigned short / unsigned short int ———转换说明: %hu , 对于无符号类型可以用 u 作后缀
unsigned long / unsigned long int ——— 转换说明: %lu
unsigned long long / unsigned long long int ————转换说明: %llu
<2>
八进制和十六进制
020 是八进制,以0为前缀的数字表示八进制数字 , 使用%O,以八进制输出,使用%#O,带0前缀形式输出
0x10 是十六进制,以0x,0X为前缀的数字是十六进制数字 , 使用%X,以十六进制输出,使用%#X,以带0X前缀形式输出
<3>
字符类型
char 为特殊的只有8位的整数类型,如果 char 只用于处理字符,那么无需考虑有无符号。转换说明: %c 。
仅当用作处理小整数时,可以使用 signed char 和 unsigned char 来说明是否有符号。
<4>
布尔类型
-Bool类型 上特殊的无符号的整数类型,只占一位大小,只能储存1和0, C语言用1代表true,用0代表false
<5>
可移植类型: stdint.h 和 inttypes.h
C99版本中新增的俩个头文件,在头文件中定义更多整数类型,用来确保C语言的类型在不同系统中功能相同。
精确宽度整数类型 ,简单来说,就是在程序移植到其他平台时能够自动将程序中的整数类型于系统重新适配,达到可移植性的目的。
- 在使用32位int的系统时,头文件会把 int32-t作为int的别名,而当你在16位int,32位long的系统上时,头文件会把int32-t作为long的别名,凭借头文件来达到可移植性。
最小宽度类型 ,如果在不支持准确精度整数类型的情况下,这一类型保证所表示的类型一定是至少有指定宽度的最小整数类型。
- 例如,int-least8-t是可容纳8位有符号整数值的类型中宽度最小的类型的一个别名
最快最小宽度类型 ,定义了一组可使计算达到最快的类型集合。 例如,int-fast8-t被定义为系统中对8位有符号而言最快的整数别名
浮点数类型
<1>
实浮点数类型
实浮点数也可分正浮点数和负浮点数
float ——–系统的基本浮点类型,可精确表示至少6位有效数字,转换说明: %f 。
double ——–浮点数范围更大,至少10位有效数字,通常会更多,转换说明: %f 。
long double ——-能比double更多的有效数字和更大的指数,转换说明: %lf 。
<2>
e记数法和p记数法
e记数法也叫指数记数法 ,是计算机世界的科学记数法。 使用%e,以e记数法形式输出
- e后面的数字代表10的指数,例如1.0e7 , 3.2E4 , -5.6e-3 等
p记数法 用十六进制表示浮点数的方法 , 使用%a,按p记数法形式输出
- 即在十六进制数前加 0X 前缀,用p或P代替e或E,用2的幂代替10的幂,例如,0xa.1fp10 , 0xb.1P-2
<3>
复数和虚数浮点数
C语言有三种复数类型: float -Complex , double -Complex , long double -Complex 。这些类型的变量包含俩个浮点数类型的值,分别表示复数的实部和虚部。
相同的还有三种虚数类型: float -Imaginary , double -Imaginary , long double -Imaginary 。
如果包含 complex.h 头文件,便可用 complex 代替 -Complex ,用 imaginary 代替 -Imaginary ,还可以有 I 代替-1的平方根。