确定是否从无符号int减去

时间:2019-03-04 18:26:22

标签: c++

考虑到强制转换为n可能已经产生负值,如何确定从unsigned int减去signed int是否会翻转为负值呢?

示例

#include <iostream>
using namespace std;
int main(){
    unsigned int i = 2147483647*2;
    if((int)i - 1 < 0){
        cout << "rolled over";
    }
    else {
        i = 0;
    }
    return 0;
}

为了检查是否将从unsigned int减去,您可以先将其强制转换为int。但是,如果unsigned int> max int值,则最终将为负。那么如何防止unsigned int滚动呢?

0 个答案:

没有答案