很多时候我看到程序员做了以下演员
unsigned long long minimumValue;
minimumValue = (unsigned long long)-1;
Run Code Online (Sandbox Code Playgroud)
但为什么他们这样做,而不是int minimumValue = -1?
这是给出无符号类型的最大值(非最小值)的技巧.从有符号值转换使用模运算来给出无符号类型范围内的值; 所以-1变成pow(2,N)-1为无符号类型与N位,这是最大的表示值.
演员表并不是绝对必要的,但有些编译器可能会在没有它的情况下发出警告.
更好的风格可能是指定ULLONG_MAX,或者std::numeric_limits<unsigned long long>::max()在C++中.
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |