c++ - 移位数给出错误的输出 `std::cout`

标签 c++ bit-shift

unsigned int command = 4;
cout << command;

command = (command << 1);
cout << command;

command = (command << 1);
cout << command;

输出:

4
8
10

为什么最后一行的输出是10,而不是16

最佳答案

可能有一个 cout << hex这段代码运行之前的某个地方。或者你不小心设置了cout以十六进制格式化数字。如果你添加:

command = (command<<1);
cout << command;

它应该打印出 20在十六进制模式下。

关于c++ - 移位数给出错误的输出 `std::cout`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7368200/

相关文章:

c++ - 使用序列化 C++ 保存游戏状态

c++ - 在 Ubuntu 20.04 中编译 opencv 项目时出现 "/usr/bin/ld: cannot find -llibopencv_calib3d"

c++ - 将 2 个双数组组合成一个找到它们的并集和交集的最简单方法

c++ - 将 .txt 中的数据存储为 C++ 中的列 vector

python ->> 运算符(operator)如何在 Airflow 中定义任务依赖关系?

c - 使用指定为#define 的数字的移位运算符

C++析构函数崩溃程序

c# - 为什么当操作数小于 32 位时,移位操作总是产生有符号整数

c++ - 为什么 32 位整数的左位移 "<<"在使用超过 32 次时不能按预期工作?

c++ - 为什么将 int 向上移位会产生负数?