• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            chenglong7997

            整數溢出

             整數溢出
            c語言中存在兩類整數算術運算,有符號運算和無符號運算。在無符號運算里,沒有了符號位,所以是沒有溢出的概念的

            所有的無符號運算都是以2的n次方為模。如果算術運算符的一個操作數是有符號書,另一個是無符號數,那么有符號數

            會被轉換為無符號數(表示范圍小的總是被轉換為表示范圍大的),那么溢出也不會發生。但是,當兩個操作數都是有符號數

            時,溢出就有可能發生。而且溢出的結果是未定義的。當一個運算的結果發生溢出時,任何假設都是不安全的。

            例如,假定a和b是兩個非負的整型變量(有符號),我們需要檢查a+b是否溢出,一種想當然的方式是:

            if (a + b < 0)

                  溢出;

            實際上,在現實世界里,這并不能正常運行。當a+b確實發生溢出時,所有關于結果如何的假設均不可靠。比如,在某些

            機器的cpu,加法運算將設置一個內部寄存器為四種狀態:正,負,零和溢出。在這種機器上,c編譯器完全有理由實現以上

            的例子,使得a+b返回的不是負,而是這個內存寄存器的溢出狀態。顯然,if的判斷會失敗。

            一種正確的方式是將a和b都強制轉換為無符號整數:

            if ( (unsigned)a + (unsigned)b  > INT_MAX)

                  溢出;

            這里的int_max值為有符號整型的最大值。在一般的編譯器里是一個預定義的常量。ANSI C在limits里定義了INT_MAX,值為

            2的31次方-1.

            不需要用到無符號算數運算的另一種可行方法是:

            if (a > INT_MAX - b )

                 溢出; 

            posted on 2012-06-25 01:15 Snape 閱讀(997) 評論(0)  編輯 收藏 引用 所屬分類: Traps

            導航

            <2012年9月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            統計

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            my

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            性欧美大战久久久久久久| 亚洲αv久久久噜噜噜噜噜| 99久久99久久| 国产精自产拍久久久久久蜜 | 久久人人爽人人人人片av| 亚洲AV日韩AV永久无码久久| 久久se精品一区精品二区| 久久人人爽人人澡人人高潮AV | 少妇久久久久久久久久| 日韩乱码人妻无码中文字幕久久| 久久国产精品-国产精品| 亚洲另类欧美综合久久图片区| 久久久久免费看成人影片| 久久精品中文字幕一区| 久久精品水蜜桃av综合天堂| 狠狠人妻久久久久久综合| 日产精品久久久久久久| 欧美亚洲国产精品久久久久| 国产精品久久久久久影院 | 久久人人爽人人爽人人片AV高清 | 久久久久免费视频| 久久99国产精一区二区三区| 久久人人爽人人爽人人片av麻烦| 国产精自产拍久久久久久蜜| 色综合久久久久无码专区| 欧美久久天天综合香蕉伊| 久久精品国产91久久综合麻豆自制| 精品国产乱码久久久久软件| 久久精品国产黑森林| 国产高潮国产高潮久久久91 | 久久免费视频1| 久久久久亚洲精品男人的天堂| 精品亚洲综合久久中文字幕| 亚洲精品无码久久久久去q| 亚洲精品国精品久久99热| 久久毛片免费看一区二区三区| 中文字幕亚洲综合久久| 久久精品国产69国产精品亚洲| 久久久久久亚洲精品成人 | 无码国内精品久久人妻麻豆按摩| 精品久久久久久久久久久久久久久|