有关数据类型和其取值范围
数据类型
1、数据类型:
基本类型数据:
整数(整型--int--4、短整型--short int--2、长整型--long int--8)
浮点数【实数】(单精度浮点数--float--4、双精度浮点数—double--8)
字符(char--1)
复合类型数据:
结构体
枚举
共用体
1、整数类型:short int、int、long int、long long int
2、浮点数类型:float、double、long double
3、字符类型:char
4、布尔类型:_Bool(只有真假两个值)
5、枚举类型:enum
sizeof运算符:用于获得数据类型或者表达式的长度
三种类型:sizeof(object)、sizeof(type_name)、sizeof object;
signed:带符号
unsigned:不带符号(只能存放正数和0)
2、字符和字符串:
字符类型是一种特殊的整型。 确保取值范围
声明字符串:char 变量名[数量]
给字符串赋值:变量名[索引号]= 字符
字符串定义的时候要加上一个\0,计算机读取到这步
3、取值范围:
比特位:bit/b (CPU能读懂的最小单位)
比特:Byte/B(内存机构的最小寻址单位)
1Byte=8bit
数据类型 字节数 取值范围
char 1 -128~127
unsigned char 1 0~255
short 2 -32768~32767
unsigned short 2 0~65535
int 4 -2147483648~2147483647
unsigned int 4 0~4294967295
long 4 -2147483648~2147483647
unsigned long 4 0~4294967295
long long 8 -9223372036854775808~ 9223372036854775807
unsigned long long 8 0 ~ 18446744073709551615
float 4 1.17549 * 10^(-38) ~ 3.40282 * 10^(38)
double 8 2.22507 * 10^(-308) ~ 1.79769 * 10^(308)
long double 12 2.22507 * 10^(-308) ~ 1.79769 * 10^(308)
4、结果输出有效位问题
%g 默认最多保留六位有效数字,包括整数部分和小数部分(不会在最后强加 0 来凑够有效数字的位数)
%f 和 %e 默认保留六位小数,只包括小数部分(会在最后强加 0 来凑够小数部分的位数)
%g 要以最短的方式来输出小数,并且小数部分表现很自然,不会强加零,比 %f 和 %e 更有弹性,这在大部分情况下是符合用户习惯的。
%g用来输出 float 类型;
%lg 用来输出double 类型,并且当以指数形式输出时,e小写。
%G 和 %lG 也分别用来输出 float 类型和 double 类型,只是当以指数形式输出时,E大写