- ·上一篇内容:C#的值类型运用详解
- ·下一篇内容:C#中的字符串类应用详解
C#常用操作符的使用详解
6.位操作符
我们知道,任何信息在计算机中都是以二进制的形式保存的。位操作符就是对数据按二进制进行运算的操作符。C#语言中的位操作符有:
-
& 与
-
| 或
-
^ 异或
-
~ 取补
-
<< 左移
-
>> 右移
其中,取补只有一个操作数,而其它的位操作符都有两个操作数。这些运算都不会产生溢出。位操作符的操作数为整型或者是可以转换为整型的任何其它类型。
(1)& 与操作符
&操作符的操作数按二进制进行与运算,其规则为:
0&0=0
0&1=0
1&0=0
1&1=1
即,除了两个位均为1时,与运算结果为1外,其它任何情况下与运算结果均为0。比如,3和9进行与运算:
3的二进制表示: 00000011
9的二进制表示: 00001001
与运算结果: 00000001
即,3&9的结果为1。
(2)| 或操作符
或操作符的操作数按二进制位进行或运算,其规则为:
0|0=0
0|1=1
1|0=1
1|1=1
即,除了两个位均为0时,或运算结果为0外,其它情况下或运算结果均为1。比如,3和9进行或运算:
3的二进制表示: 00000011
9的二进制表示: 00001001
或运算结果: 00001011
即,3|9的结果为11。
(3)^ 异或操作符
异或操作符的操作数按二进制位进行异或运算,其运算规则为:
0^0=0
0^1=0
1^0=0
1^1=1
可以看出,当两个位相同时,异或运算结果为0;不相同时异或运算结果为1。如3和9进行异或运算:
3的二进制表示: 00000011
9的二进制表示: 00001001
异或运算结果: 00001010
即,3^9的结果为10。
(4)~ 取补操作符
取补操作符对操作数的每一位取补,如对9取补结果为:
9的二进制表示:00001001
取补运算结果: 11110110
(5)移位操作符
左移操作将操作数按位左移,高位被丢弃,低位顺序补0。比如12的二进制为00001100,左移一位为00011000(24),左移二位为00110000(48)。
右移操作时,如果操作数x是int或long类型时,x的低位被丢弃,其它各位顺序依次右移,如果x是非负数,最高位设为零;如果x为负数,则最高位设为1。而当x为uint或ulong类型时,x的低位将被丢弃,其它各位顺序依次右移,高位设为0。
微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。
个人成长离不开各位的关注,你的关注就是我继续前行的动力。