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

 

posted @ 2015-01-21 17:25  melao2006  阅读(396)  评论(0编辑  收藏  举报