为什么不能在流中直接使用按位运算符?

唐克

在尝试运行此代码时

#include <iostream>
using namespace std;
int main() {
  short int a = 0xFFFD, b = 10;
  cout <<  a | b;
  return 0;
}

我有一个错误

错误:与“ operator |”不匹配

但是,将结果存储在另一个变量中似乎可以解决此问题:

#include <iostream>
using namespace std;
int main() {
  short int a = 0xFFFD, b = 10, c;
  c = a | b;
  cout << c;
  return 0;
}

有人可以解释一下为什么吗?

轨道轻度竞赛
cout <<  a | b;

这等效于:

(cout << a) | b;

如果您阅读了该错误消息的其余部分,则会看到它告诉您no operator|(ostream&, short int),这是对的。

通过将括号放置在适当的位置来修正您的表情:

cout << (a | b);

a | b使用其自己的变量进行预存储具有类似的效果。)

是的,这在这里是不直观的,但这是因为<<已从其“按位左移”的基本含义中“重用”,并且由于该基本含义,它最初被确定|优先<<

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能在AngularJS的ng-mousemove中使用预增量运算符?

来自分类Dev

F#-为什么我不能在此代码中不使用管道运算符?

来自分类Dev

进行运算符重载时,为什么不能在类内使用print函数?

来自分类Dev

为什么我不能在Perl的diamond运算符中使用typeglob?

来自分类Dev

为什么我不能在 Java 中使用像 if-else 语句这样的 (? :) 运算符?

来自分类Dev

为什么我的按位运算不能在Java中与`int`一起使用?

来自分类Dev

为什么我不能在函数中直接返回Void

来自分类Dev

为什么不能在unittest中直接模拟对象?

来自分类Dev

为什么按位运算符没有逻辑“和/或”运算符那么聪明

来自分类Dev

为什么此函数使用按位运算符以这种方式转换?

来自分类Dev

为什么不能对类使用运算符重载?

来自分类Dev

为什么不能在三元运算符中使用braced-init-list?

来自分类Dev

为什么不能在没有括号的插值字符串中使用条件运算符?

来自分类Dev

为什么不能在Java的for循环的第三个参数中使用?:运算符?

来自分类Dev

为什么我不能在C中仅使用1个相等运算符来检查多个条件?

来自分类Dev

为什么我们不能在三元运算符中返回?

来自分类Dev

为什么我的任务运算符不能在自任务上工作?

来自分类Dev

为什么## aka令牌粘贴运算符不能在C和C ++中用于注释?

来自分类Dev

为什么不能在>运算符中推断出UnitType?

来自分类Dev

为什么我不能在条件运算符中输出 endl?

来自分类Dev

为什么在比较布尔值时,按位运算符比Java中的“正常”运算符要慢?

来自分类Dev

为什么在此代码中使用按位运算符进行加法比算术加法慢得多

来自分类Dev

为什么我不能在C#中直接表达表达式并直接为null?

来自分类Dev

为什么我不能在PHP中直接使用函数返回值作为动态类名?

来自分类Dev

按位'&'运算符

来自分类Dev

按位或运算符

来自分类Dev

为什么%运算符不能在C / C ++中用于浮点运算,但可以在Java和C#中使用?

来自分类Dev

使用按位运算符检查位设置

来自分类Dev

为什么按值而不是引用返回时不能调用运算符?

Related 相关文章

  1. 1

    为什么我不能在AngularJS的ng-mousemove中使用预增量运算符?

  2. 2

    F#-为什么我不能在此代码中不使用管道运算符?

  3. 3

    进行运算符重载时,为什么不能在类内使用print函数?

  4. 4

    为什么我不能在Perl的diamond运算符中使用typeglob?

  5. 5

    为什么我不能在 Java 中使用像 if-else 语句这样的 (? :) 运算符?

  6. 6

    为什么我的按位运算不能在Java中与`int`一起使用?

  7. 7

    为什么我不能在函数中直接返回Void

  8. 8

    为什么不能在unittest中直接模拟对象?

  9. 9

    为什么按位运算符没有逻辑“和/或”运算符那么聪明

  10. 10

    为什么此函数使用按位运算符以这种方式转换?

  11. 11

    为什么不能对类使用运算符重载?

  12. 12

    为什么不能在三元运算符中使用braced-init-list?

  13. 13

    为什么不能在没有括号的插值字符串中使用条件运算符?

  14. 14

    为什么不能在Java的for循环的第三个参数中使用?:运算符?

  15. 15

    为什么我不能在C中仅使用1个相等运算符来检查多个条件?

  16. 16

    为什么我们不能在三元运算符中返回?

  17. 17

    为什么我的任务运算符不能在自任务上工作?

  18. 18

    为什么## aka令牌粘贴运算符不能在C和C ++中用于注释?

  19. 19

    为什么不能在>运算符中推断出UnitType?

  20. 20

    为什么我不能在条件运算符中输出 endl?

  21. 21

    为什么在比较布尔值时,按位运算符比Java中的“正常”运算符要慢?

  22. 22

    为什么在此代码中使用按位运算符进行加法比算术加法慢得多

  23. 23

    为什么我不能在C#中直接表达表达式并直接为null?

  24. 24

    为什么我不能在PHP中直接使用函数返回值作为动态类名?

  25. 25

    按位'&'运算符

  26. 26

    按位或运算符

  27. 27

    为什么%运算符不能在C / C ++中用于浮点运算,但可以在Java和C#中使用?

  28. 28

    使用按位运算符检查位设置

  29. 29

    为什么按值而不是引用返回时不能调用运算符?

热门标签

归档