c++ - 从无符号整数类型样式转换。这种风格好吗?

标签 c++ c

很多时候我看到程序员在做下面的转换

unsigned long long minimumValue;
minimumValue = (unsigned long long)-1;

但为什么他们这样做,而不是 int minimumValue = -1

最佳答案

这是一个给无符号类型的最大值(不是最小值)的技巧。从有符号值转换使用模运算给出无符号类型范围内的值;所以-1变成 pow(2,N)-1对于带 N 的无符号类型位,这是最大的可表示值。

转换不是绝对必要的,但如果没有它,一些编译器可能会发出警告。

更好的样式可能是指定 ULLONG_MAX , 或 std::numeric_limits<unsigned long long>::max()在 C++ 中。

关于c++ - 从无符号整数类型样式转换。这种风格好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990806/

相关文章:

c - 我如何获得正确的输出?

c - 如何在 C __asm__() 中调用 printf?

c++ - Symbian C++ - S60 应用程序通过 TRK 和 Carbide 启动,但之后或下载时不启动

c/你期望什么行为,最佳实践,信号,线程,进程?

c++ - 在 Mac OS X 上使用 EWS SDK Linux 加载 ecw 文件 -> 错误链接符号

c++ - 使用 CoDiPack 自动区分

c++ - 顺序内存分配

C++定义一个函数当且仅当另一个函数不存在

c++ - 最容易使用连接器/接口(interface)来使用 C++ 的 MySQL/其他数据库

c++ - 如何处理 PNG 文件中的 Gamma 校正和颜色?