位移数字给出错误的输出“std::cout”
unsigned int command = 4;
cout << command;
command = (command << 1);
cout << command;
command = (command << 1);
cout << command;
输出:
4
8
10
为什么最后一行的输出是10
,而不是16
?
unsigned int command = 4;
cout << command;
command = (command << 1);
cout << command;
command = (command << 1);
cout << command;
Output:
4
8
10
Why is is the output of the last line 10
, and not 16
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可能有一个
cout << hex
在此代码运行之前的某处。要么是这样,要么是您不小心将cout
设置为十六进制数字格式。如果添加:它应该以十六进制模式打印出
20
。There's probably a
cout << hex
somewhere before this code runs. Either that or you accidentally setcout
to format numbers in hexadecimal. If you add:It should print out
20
in hex mode.10
是16
的十六进制。抱歉,如果我说的是显而易见的事情。
10
is hexadecimal for16
.Sorry if I am stating the obvious.