• 一起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类型的变量,那么不论在哪种环境下。都和上面的结果一样。


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


  • 相关阅读:
    pc 端支付宝支付流程
    crontab
    Java集合之HashSet
    Java内存与垃圾收集知识总结
    Volley设计思想和流程分析
    java内部类
    HandlerThread源码分析
    IntentService源码分析
    Android消息机制:Looper,MessageQueue,Message与handler
    LeetCode340 Longest Substring with At Most K Distinct Characters
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6945367.html
Copyright © 2020-2023  润新知