书到用时方很少!突然发现自己竟然不知道还有个数据类型叫long long int.
1.有关定义:
中 "6.2.5 Types"(第35页)有一段话: “There are five standard signed integer types, designated as signed char, short int, int, long int, and long long int.”
2.double 和 long long int的比较:
自己以前遇到大于32位的数字时,都是利用双精度浮点数double予以处理的,现在才知道long long int要比double好很多。
首先,两者都是8字节64位,但double中数符加尾数占48位,指数符加指数占16位,而long long int没有指数,因此比double的范围高2^16倍。
其次,浮点数的处理比double要慢的多,即使是有专门的浮点协处理器,也不会比long long int快。
3.输出格式 printf(..):
long long int : %lld
unsigned long long int : %llu(16进制:llx).
double : %f
注意,没有unsigned double这样的数据类型(gcc:long, short, signed or unsigned invalid for double).
4.附加说明:
A.long double
还有一种需要提到的数据类型是:long double, 长度80位, 输出格式用“lf”.
B.部分数据类型的输出格式:
阅读(4734) | 评论(0) | 转发(0) |