在 C++ 中檢查整數溢位
唯一安全的方法是在溢位發生之前檢查溢位。不過,有一些檢查整數溢位的非常規方法。因此,如果你打算檢測無符號 int 加法中的溢位,你可以檢查結果是否實際上小於相加的兩個值。例如,
例
unsigned int x, y; unsigned int value = x + y; bool overflow = value < x; // Alternatively "value < y" should also work
這是因為如果 x 和 y 都是無符號 int,並且相加後它們溢位,那麼它們的值不能大於其中的任何一個,因為它需要大於最大的可能無符號 int 才能在迴圈中疊加並超過這些值。
另一種方法是嘗試訪問 CPU 中的溢位標誌。某些編譯器提供了對它們的訪問許可權,你可以對其進行測試,但這並不是標準的。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言
C++
C#
MongoDB
MySQL
Javascript
PHP