簡體   English   中英

Pipe 算子,它是如何工作的?

[英]Pipe operator, how does it work?

所以我剛才亂七八糟,把這個寫了出來:

 int i = 0|1|2|3|4|5|6|7|8|9|10; Console.WriteLine(i.ToString()); Console.Read();

這輸出 15。為什么它 output 15? pipe 算子是做什么的?

你能給我一個實際使用的例子嗎?

我明白這似乎是一個毫無意義的問題。

這是按位或運算符

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#(和許多其他語言)中的按位 OR 運算符。 兩位之間的 OR 操作如下所示:

0 | 0 = 0
1 | 0 = 1
0 | 1 = 1
1 | 1 = 1

所以十進制 1 | 2變成01 | 二進制的 10,結果為 11(十進制的 3),如下所示:

01
10
--
11

按位或是累積運算,因此:

 0 = 00000 
 1 = 00001 
 2 = 00010 
 3 = 00011 
 4 = 00100 
 5 = 00101 
 6 = 00110
 7 = 00111 
 8 = 01000 
 9 = 01001 
10 = 01010
------------
15 = 01111 

您正在對這些數字的二進制表示進行按位或。 二進制中的數字 0 到 10 如下所示:

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010

如果您要對所有這些數字的每個數字執行 OR,您最終會得到1111 - 即十進制的 15。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM