[英]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 算子是做什么的?
你能給我一個實際使用的例子嗎?
我明白這似乎是一個毫無意義的問題。
|
是 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.