c++ - 左移错误

标签 c++ c

我在我的系统上有一个 unsigned long long 变量,它是 8 个字节,我正在尝试对其执行以下操作:

unsigned long long ull;
ull = timeLow;
ull |= timeHigh << 32;

执行此操作时,我收到警告:左移计数 >= 类型宽度。而且它似乎没有考虑到 timeHigh 移入。我该如何解决这个问题?

最佳答案

你没有转移 ull , 你在转移 timeHigh ,然后将转换结果存储在 ull 中.

我怀疑timeHigh不够大,无法存储 32 位移位的结果。制作timeHigh一个unsigned long long , (edit) 或者只是分配 timeHighull然后在 or 之前移动它在 timeLow . (信用@JasonD)

关于c++ - 左移错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13937598/

相关文章:

c++ - SetWindowPos中的客户坐标是什么意思

c - 需要换行字节来发送该数据

c - 如何使用超声波传感器计算物体的速度

c - 获取文本主体C

c++ - 如何调用保存在字符串中的函数

c++ - Const 数组从另一个 const 数组初始化

c++ - 如何限制对当前文件的某些功能或对象的访问?

c - Valgrind:无效读取和使用未初始化值

c - 如何在 C 中为 int(不是 int*)数组动态分配内存?

c++ - 构建 CImg 时出现 fatal error (编译器限制)