(最近在看书中 想分享自己看的或者自己理解的)
c++中整数类型有 char ,short(short int) ,int ,long(long int),long long(long long int)
学过代码的都知道,可能char有点陌生,因为用的最多的是表示字符的。其实这些都有特性,就是都是有有符号和无符号的两种
signed char 表示的范围为-127-127(有符号) 其实signed用在其他的类型是可以省略的 ,但char 不行,如果不加就是表示字符
unsigned char 表示范围0-255(无符号)
这时候可以看是有符号和无符号的区别了,虽然范围的跨度一样但当一个变量不能为负数时,用无符号的好点,因为其范围大,且占的内存和有符号的一样。
short 至少16位(bit 8bit等于一字节就是1byte(bit是计算机内存的基本单位) 2byte
表示范围为 -32768-32767(无符号的自己可以推演)就是有符号的最大正数剩2+1;
int 至少和short一样长 (这句话的意思 就是两个的值的范围就是short是int的子集)4byte
long (至少32为,且至少和int一样长) 4byte
long long(至少64位,且至少和long一样长)8byte
(int 被称为计算机中最为自然的长度,自然长度就是计算机处理效率最高的的长度) 其实如果没什么特别需求尽量用int ,如果有处理大量的整形数组,就用short,减少内存消耗。
其实在使用这些类型的时候要考虑最合适的,小程序可能不会带来什么太多的影响,当一个程序太大时就得注意了,1秒和1.1秒其实差很多的。所以要养成。
然后就是浮点型了 一般就三种 float ,double, long double;
这三种区别于范围,和精确度的问题
float 只保留6位有效数字(至少32bit,通常来说就是32位,4byte)
double只保留15位有效数字(至少348bit,且不少于float。通常来说就是64位,8byte)
long double只保留18位有效数字(至少和long一样大。通常来说就是128位,16byte)
如果不是为了保证精确度尽量用float,因为double,long double 会消耗内存,float的范围也足够表示生活中现有的数。
(推荐学c++看 Primer Plus c++)