C语言确定int short long的最大值
2015-08-21 09:06
357 查看
我们知道C语言中的int short long等类型,不像Java一样具体规定了范围大小,32位系统和64位系统不同,那我们在开发时该怎么确定这些类型的最大值呢?
1、只需一小句代码,如下:
分析:
当无符号0以二进制储存在内存中的时候,每一位都为0,以32位int为例,(unsigned int)0的二进制为:
00000000000000000000000000000000
按位取反(~)后,变成:
11111111111111111111111111111111
此时的十进制为:
4294967295
除以2(因为int类型中有一半表示负数且比正数多一个)之后为:
2147483647
即为32位int类型最大值。
在测试时,发现这种方法只对int类型有用,short和long不能采用该方法,那这两者该如何确定最大值呢?
2、需要引入
SHRT_MAX :short的最大值
INT_MAX :int的最大值
LONG_MAX :long的最大值
只要将它们用printf()打印出来就好了。
1、只需一小句代码,如下:
printf("%d\n", ~(unsigned int)0 / 2);
分析:
当无符号0以二进制储存在内存中的时候,每一位都为0,以32位int为例,(unsigned int)0的二进制为:
00000000000000000000000000000000
按位取反(~)后,变成:
11111111111111111111111111111111
此时的十进制为:
4294967295
除以2(因为int类型中有一半表示负数且比正数多一个)之后为:
2147483647
即为32位int类型最大值。
在测试时,发现这种方法只对int类型有用,short和long不能采用该方法,那这两者该如何确定最大值呢?
2、需要引入
<limits.h>
SHRT_MAX :short的最大值
INT_MAX :int的最大值
LONG_MAX :long的最大值
只要将它们用printf()打印出来就好了。
相关文章推荐
- C++ Primer 5e chapter 8
- C++智能指针类模板实例
- C++ Primer : 第十二章 : 动态内存之shared_ptr类
- Windows下创建动态库
- Hadoop c++开发
- C++ primer的第三章的主要内容
- C++ primer的第二章的主要内容
- C++ primer的第一章的主要内容
- 笔记 引用与赋值
- C语言的动态内存分配
- Standard C++ Episode 11
- Standard C++ Episode 10
- Standard C++ Episode 9
- Standard C++ Episode 8
- Standard C++ Episode 7
- Standard C++ Episode 6
- Standard C++ Episode 5
- 异常?C语言程序中我们如何管控(处理)运行期间的运行异常
- Standard C++ Episode 4
- 使用 cscope浏览 C++文件