在C#中进行位操作

时间:2021-05-02

位操作符是对数据按二进制位进行运算的操作符。C#位操作支持的数据类型是基本数据类型,如byte、short、char、int、long等,C#支持的位操作有如下几种:

(1)按位与 &

(2)按位或 |

(3)按位取反 ~

(4)左移 <<

(5)右移 >>

(6)异或^

在C#中位操作同C的位操作没有什么区别,位操作的速度相对较快,而且如果熟练的话,处理起来也相对方便,特别是在一些权限等相关的设置中,比如:用1、2、4、8、16、32、64分别代表查看、添加、编辑、修改、删除、审批等权限值的时候,如果某个用户的最终权限是多种权限值的叠加,用位操作来判断是否具有某种权限是相当方便的了。

usingSystem;/**作者:周公*说明:本程序用以说明在C#中如何进行位操作。*日期:2007-09-17**/publicclassBitAction{publicstaticvoidMain(string[]args){int[]power=newint[]{1,2,4,8,16,32,64};intvalue=126;/**1的二进制形式:00000001*2的二进制形式:00000010*4的二进制形式:00000100*8的二进制形式:00001000*16的二进制形式:00010000*32的二进制形式:00100000*64的二进制形式:01000000*126的二进制形式:01111110*/for(inti=0;i<power.Length;i++){if((value&power[i])!=0){Console.WriteLine("有power[{0}]={1}所代表的权限",i,power[i]);}}Console.WriteLine("按位与:126&4={0}",value&4);Console.WriteLine("按位或:126|4={0}",value|4);Console.WriteLine("左移:126<<4={0}",value<<4);Console.WriteLine("右移:126>>4={0}",value&4);Console.WriteLine("异或:126^4={0}",value^4);Console.WriteLine("按位取反:~126={0}",~value);Console.ReadLine();}}

运行结果:

//举例说明usingSystem;classMikeCat{publicstaticvoidMain(){inta=6&3;Console.WriteLine("a={0}",a);//6的二进制是00000110,3的二进制是00000011,按位与后等于00000010,  即2。    intb=6|3;Console.WriteLine("b={0}",b);//6的二进制是00000110,3的二进制是00000011,按位或后等于00000111,即7intc=~6;Console.WriteLine("c={0}",c);//6的二进制是00000110,按位取反后是11111001即-7intd=6^3;Console.WriteLine("d={0}",d);//6的二进制是00000110,3的二进制是00000011,按位异或后等于00000101,即5inte=6<<3;Console.WriteLine("e={0}",e);//6的二进制是00000110,左移三位后等于00101000,即48intf=6>>2;Console.WriteLine("f={0}",f);//6的二进制是00000110,右移二位等于00000001,即1  }}

http:///top5/archive/2011/01/31/1948245.html

本文源自:翔宇亭——IT乐园(http://),转载请保留此信息!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章