码迷,mamicode.com
首页 > 编程语言 > 详细

一起talk C栗子吧(第三十四回:C语言实例--巧用溢出计算最值)

时间:2015-08-10 22:17:54      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:c语言   溢出   求最值   


各位看官们,大家好,上一回中咱们说的是巧用移位的例子,这一回咱们说的例子是:巧用溢出计算最值。

闲话休提,言归正转。让我们一起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语言实例--巧用溢出计算最值)

标签:c语言   溢出   求最值   

原文地址:http://blog.csdn.net/talk_8/article/details/47404545

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!