所以我刚才乱七八糟,把这个写了出来:
int i = 0|1|2|3|4|5|6|7|8|9|10;
Console.WriteLine(i.ToString());
Console.Read();
这输出 15。为什么它输出 15?管道操作员是做什么的?
你能给我一个实际使用的例子吗?
我明白这似乎是一个毫无意义的问题。
所以我刚才乱七八糟,把这个写了出来:
int i = 0|1|2|3|4|5|6|7|8|9|10;
Console.WriteLine(i.ToString());
Console.Read();
这输出 15。为什么它输出 15?管道操作员是做什么的?
你能给我一个实际使用的例子吗?
我明白这似乎是一个毫无意义的问题。
|
是 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。