C#中的位操作小结
时间:2023-08-07 07:01:29
位操作符是对数据按二进制位进行运算的操作符。位操作是其他很多语言都支持的操作,如C、C++和Java等,C#也不例外支持位操作。注意位操作支持的数据类型是基本数据类型,如byte、short、char、int、long等,C#支持的位操作有如下几种:
•按位与 &
•按位或 |
•按位取反 ~
•左移 <<
•右移 >>
•异或^
在C#中位操作同C的位操作没有什么区别,位操作的速度相对较快,而且如果熟练的话,处理起来也相对方便,特别是在一些权限等相关的设置中,比如:用1、2、4、8、16、32、64分别代表查看、添加、编辑、修改、删除、审批等权限值的时候,如果某个用户的最终权限是多种权限值的叠加,用位操作来判断是否具有某种权限是相当方便的了。
举例说明:
using System;
public class BitAction
{
public static void Main(string[] args)
{
int[] power = new int[] { 1, 2, 4, 8, 16, 32, 64 };
int value = 126;
/*
* 1的二进制形式: 00000001
* 2的二进制形式: 00000010
* 4的二进制形式: 00000100
* 8的二进制形式: 00001000
* 16的二进制形式: 00010000
* 32的二进制形式: 00100000
* 64的二进制形式: 01000000
* 126的二进制形式:01111110
*/
for (int i = 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();
}
}
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
浅析Java常用API(Scanner,Random)匿名对象
浅析C#中的Main(String[] args)参数输入问题
![](https://img.aspxhome.com/file/2023/3/74813_0s.jpg)
Java如何基于command调用openssl生成私钥证书
![](https://img.aspxhome.com/file/2023/6/113466_0s.png)
springcloud注册hostname或者ip的那些事
![](https://img.aspxhome.com/file/2023/9/65369_0s.png)
Android 调用系统照相机拍照和录像
Android 中 viewpager 滑动指示器的实例代码
![](https://img.aspxhome.com/file/2023/2/119092_0s.jpg)
Maven中的SnapShot版本和正式版本的区别
Seata AT模式TM处理流程图文示例详解
![](https://img.aspxhome.com/file/2023/4/71864_0s.png)
c#定时器使用示例详解
详谈Java中net.sf.json包关于JSON与对象互转的坑
![](https://img.aspxhome.com/file/2023/0/65180_0s.jpg)
纯注解版spring与mybatis的整合过程
![](https://img.aspxhome.com/file/2023/7/119797_0s.jpg)
详解Android应用main函数的调用
使用IntelliJ IDEA搭建SSM框架的图文教程
![](https://img.aspxhome.com/file/2023/7/94747_0s.png)
C++ 双向循环链表类模版实例详解
![](https://img.aspxhome.com/file/2023/8/131958_0s.png)
c# SendMail发送邮件实例代码
Java使用poi操作excel实例解析
C# Bitmap 复制的小例子
Android禁止横屏竖屏切换的有效方法
Java运算符的知识点与代码汇总
Android利用GridView实现单选效果
![](https://img.aspxhome.com/file/2023/4/139664_0s.jpg)