我在我的系统上有一个 unsigned long long
变量,它是 8 个字节,我正在尝试对其执行以下操作:
unsigned long long ull;
ull = timeLow;
ull |= timeHigh << 32;
执行此操作时,我收到警告:左移计数 >= 类型宽度。而且它似乎没有考虑到 timeHigh 移入。我该如何解决这个问题?
最佳答案
你没有转移 ull
, 你在转移 timeHigh
,然后将转换结果存储在 ull
中.
我怀疑timeHigh
不够大,无法存储 32 位移位的结果。制作timeHigh
一个unsigned long long
, (edit) 或者只是分配 timeHigh
至 ull
然后在 or
之前移动它在 timeLow
. (信用@JasonD)
关于c++ - 左移错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13937598/