码家

Web Platform, Cloud and Mobile Application Development

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年10月30日

摘要: 标准也规定了这些整数类型的最小取值范围。short 的最小表示范围和 int 一样,都是-32767 到 32767 。也就是 -(2^15 - 1)到(2^15 - 1)。其中,2^15表示 2 的 15 次方。类似地,2 的 20 次方记作2^20 ,以此类推。注意:C 语言中 2^15 并不表示 2 的 15 次方,为了书写方便,我们姑且这么表示。long 的最小取值范围是 -2147483647 到 2147483647 。也就是 -(2^31 - 1) 到 (2^31 - 1) 。unsigned short的最小表示范围和unsigned int 一样,都是 0 到 65535(2 阅读全文
posted @ 2011-10-30 20:34 海山 阅读(37345) 评论(1) 推荐(0) 编辑

摘要: 在32位机上,int通常是32位;在16位机上,int通常是16位(由编译器决定,而编译器通常是根据代码运行的目标机来决定)。 long int在上述两种机器上通常都是32位。 所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位。 TC里面 int 就是 2个字节,而VC++里面就是4个字节,gcc里 阅读全文
posted @ 2011-10-30 20:28 海山 阅读(2512) 评论(0) 推荐(0) 编辑

摘要: 最近经常见到这些unsigned char,short,int ,long的定义,有时真的不确定位长是多少,上网查,又话是跟编译器有关,没一个准确答案。于是只好自己找答案,其实用一个最简单地方就可以知道其长度,就是用sizeof函数。于是我写了如下一段: unsignedchar uint8 = 0; signed char int8 = 0; unsigned short uint16 = 0; signed short int16 = 0; unsigned int uint32 = 0; signed int int32 = 0; float fp32 = 0; double fp64 阅读全文
posted @ 2011-10-30 20:06 海山 阅读(29661) 评论(0) 推荐(1) 编辑