C#2010 按位运算
按位运算是一种特殊的数据运算,其本意是将数据转换为二进制模式,然后对
二进制数位进行操作。按位运算通常只能针对整数型数据,包括二进制、八进制、
十进制和十六进制的各种整数。按位运算可以分为 3 类,如下所示。
1.按位逻辑运算
按位逻辑运算是指将整数转换为二进制数字,然后将每一个数位的0 视为逻辑
假(false),1 视为逻辑真(True),然后再对其进行逻辑运算。按位逻辑运算可以
使用的运算符如表 2-10 所示。
表 2-10 按位逻辑运算符
运算符
&
|
~
^
作用
按位与运算符,将两个数据转换为二进制,然后依数位进行逻辑与运算。
按位或运算符,将两个数据转换为二进制,然后依数位进行逻辑或运算
按位取反运算符,将数据转换为二进制,然后每一位应用 1 的补码,并返回结果
按位异或运算符,将两个数据转换为二进制,如同数位相同返回 0,否则返回 1
在进行按位运算时,转换二进制过程中应对二进制数字进行补位处理,即位数
如不是 4 的倍数,应在之前加 0,补足为 4 的倍数。例如,124 转换为二进制数字
为 111 1100,此时,应在之前补 1 个 0,使其变为 0111 1100。
对两个数字 124 和 135 进行按位逻辑与、或和异或运算,需要先将其转换为二
进制,即 0111 1100和 1000 0111,然后再将其数位对齐,进行逻辑运算,如下所示。
0111 1100
0000 0100
0111 1100
1111 1111
0111 1100
1111 1011
& 1000 0111 | 1000 0111 ^ 1000 0111
将以上的结果由二进制转换为十进制,即可获得按位运算的结果,依次为 4、
255 和 251 等。计算的代码如下所示。
Console.WriteLine("124 & 135 : " + (124 & 135));//输出:124 & 135 : 4
Console.WriteLine("124 | 135 : " + (124 | 135));//输出 124 | 135 : 255
Console.WriteLine("124 ^ 135 : " + (124 ^ 135));//输出 124 ^ 135 : 251
按位取反运算是一个是根据计算机的二进制数字特点进行的一种一元运算,在
进行按位取反时,首先应将数字转换为 32 位二进制整数。例如,数字 10,转换为
32 位二进制整数如下所示。
0000 0000 0000 0000 0000 0000 0000 1010
转换后的 32 位二进制整数被称作原码。将原码取反(即进行逻辑非运算),如
下所示。
1111 1111 1111 1111 1111 1111 1111 0101
然后,求原码的补码(将反码加 1),如下所示。
评论0
最新资源