各位看官们,大家好,上一回中咱们说的是巧用移位的例子,这一回咱们说的例子是:巧用溢出计算最值。
闲话休提,言归正转。让我们一起talk C栗子吧!
大家都知道,程序中的变量都有一个取值范围,这个范围也计算机和编译器都有关系。我们举个实际的例
子进行说明:在32位的计算机上,如果使用4个字节存储int类型的变量也就是说使用了32位的存储空间。
这时int类型变量的取值范围是:负2的32次方到正2的32次方-1,具体的数值是-2147483648到2147483647。
如果把不在这个范围内的数值赋值给int类型的变量,那么就会发生溢出。这也是我们在写程序的时候需
要注意的地方,不然程序中发生了溢出就会导致错误的结果。不过溢出有个特点:最大值加一就会因为溢
出变成最小值;反之,最小值减一就会因为溢出变成最大值。我们可以巧妙地利用溢出的这个特点,来求
各种类型变量的最值。
看官们,正文中就不写代码了,详细的代码放到了我的资源中,大家可以点击这里下载使用。在代码中我
们计算的是int类型变量的最值。大家可以自己扩展,计算其它类型变量的最值。
我们当前的编程环境是这样的:计算机是X86结构,操作系统为32位的Linux Mint系统,编译器为GCC,
版本是4.8.2.在这样的编程环境下,使用4个字节存储int类型的变量,所以得到的结果如下:
the min value of int is:-2147483648
the max value of int is:2147483647
如果大家的编程环境和我的不一样,可能会得到不同的运算结果。不过有一点是可以肯定的,如果使用4个
字节存储int类型的变量,那么不论在哪种环境下,都和上面的结果一样。
各位看官,关于巧用溢出计算最值的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解。
版权声明:本文为博主原创文章,未经博主允许不得转载。
一起talk C栗子吧(第三十四回:C语言实例--巧用溢出计算最值)
原文地址:http://blog.csdn.net/talk_8/article/details/47404545