Chinaunix首页 | 论坛 | 博客
  • 博客访问: 405937
  • 博文数量: 65
  • 博客积分: 1491
  • 博客等级: 上尉
  • 技术积分: 702
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-30 15:57
文章分类
文章存档

2011年(6)

2010年(12)

2009年(47)

我的朋友

分类: C/C++

2010-01-28 21:06:02

  书到用时方很少!突然发现自己竟然不知道还有个数据类型叫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.部分数据类型的输出格式:
  

<--文章完-->
阅读(4705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~