一起talk C栗子吧(第三十四回: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类型的变量,那么不论在哪种环境下。都和上面的结果一样。


各位看官,关于巧用溢出计算最值的样例咱们就讲到这里。欲知后面还有什么样例,且听下回分解。


原文地址:https://www.cnblogs.com/mfmdaoyou/p/6945367.html