C#位运算符
一、C#位运算符
C#语言的位运算符可以对整型运算对象按位进行逻辑运算。
二、提示
1. 与运算符
与运算符的运算规则如下:
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1例如:
2的二进制表示: 00000010
10的二进制表示:00001010
------------------------
与运算的结果: 00000010所以,2&10的结果为2。
2. 或运算符
或运算符的运算规则如下:
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1例如:
2的二进制表示: 00000010
10的二进制表示: 00001010
-------------------------
或运算的结果: 00001010所以,2|10的结果为10。
3. 异或运算符
异或运算符的运算规则如下:
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0例如:
2的二进制表示: 00000010
10的二进制表示: 00001010
-------------------------
异或运算的结果: 00001000所以,2^10的结果为8。
4. 取补运算符
例如:
10的二进制表示:00001010
------------------------
取补运算的结果:11110101所以,10取补的结果为245。
5. 左移运算符
左移运算将操作数按二进制位左移,高位被丢弃,低位顺序补0。比如10的二进制为00001010,左移一位为00010100(20),左移二位为00101000(40)。
6. 右移运算符
右移运算时,如果操作数x是int或long型时,x的低位被丢弃,其它各位顺序依次右移;如果x是非负数,最高位设成0;如果x为负数,则最高位高为1。而当x的类型为uint或ulong类型时,x的低位将被丢弃,其它各位顺序依次右移,高位设为0。
注:将x的取值设置为不同的类型时,运行程序后会自动显示右移后的结果。
三、示例
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
class Program
{
static void Main(string[] args)
{
// C#位运算符-www.baike369.com
Console.WriteLine("与运算符:" + (20 & 5));
Console.WriteLine("或运算符:" + (20 | 5));
Console.WriteLine("异或运算符:" + (20 ^ 5));
Console.WriteLine("取补运算符:" + ~20);
Console.WriteLine("左移运算符:" + (20 << 3));
Console.WriteLine("右移运算符:" + (20 >> 3));
Console.ReadLine();
}
}
}
上述代码中,还没有给出20和5的二进制表示形式!
运行结果:
与运算符:4
或运算符:21
异或运算符:17
取补运算符:-21
左移运算符:160
右移运算符:2