c# - 管道运算符(operator),它是如何工作的?

标签 c# pipe operator-keyword

所以我刚才胡乱写了这个:

        int i = 0|1|2|3|4|5|6|7|8|9|10;

        Console.WriteLine(i.ToString());
        Console.Read();

这会输出 15。为什么会输出 15?管道运算符(operator)是做什么的?

你能给我一个实际使用它的例子吗?

我理解这是否是一个毫无意义的问题。

最佳答案

这是bit-wise OR operator

OR 运算符的基本真值表是:

  A  B  A|B
  0  0   0
  0  1   1
  1  0   1
  1  1   1

因此,要分析您的案例 0|1|2|3|4|5|6|7|8|9|10,以二进制表示:

 0 = 0b00000 
 1 = 0b00001 
 2 = 0b00010 
 3 = 0b00011 
 4 = 0b00100 
 5 = 0b00101 
 6 = 0b00110
 7 = 0b00111 
 8 = 0b01000 
 9 = 0b01001 
10 = 0b01010
------------
15 = 0b01111 

延伸阅读

关于c# - 管道运算符(operator),它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15773924/

相关文章:

c# - 自定义配置部分 - 删除不需要的集合标签

c# - LINQ Union 不会进入重写的 Equals 方法

c++ - C++ 中 'and' 、 'or' 等关键字的用途是什么?

python - 在 Linux 中通过管道设置和使用环境变量

python - 在python中,如何使正确的操作数在乘以两个不同的类时优先( __rmul__ 方法)?

java - 不能使用 == 代替一元 & 来检查两个值是否相等

c# - 编码的 UI 测试向下转换不起作用

c# - 处理将 C# 转换为 F# 的 2 个编译器错误

linux - 为什么管道输出到 bash 函数不起作用

pipe - 有什么方法可以让 Fish 函数从管道读取可选输入吗?