`
jinvasshole
  • 浏览: 767319 次
文章分类
社区版块
存档分类
最新评论

C#中的位操作

 
阅读更多

位操作符是对数据按二进制位进行运算的操作符。位操作是其他很多语言都支持的操作,如C、C++和Java等,C#也不例外支持位操作。注意位操作支持的数据类型是基本数据类型,如byte、short、char、int、long等,C#支持的位操作有如下几种:
·按位与 &
·按位或 |
·按位取反 ~
·左移 <<
·右移 >>
·异或^

在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();
}
}


运行结果:
分享到:
评论

相关推荐

    C#中的位操作小结

    在C#中位操作同C的位操作没有什么区别,位操作的速度相对较快,而且如果熟练的话,处理起来也相对方便,特别是在一些权限等相关的设置中,比如:用1、2、4、8、16、32、64分别代表查看、添加、编辑、修改、删除、...

    C#位运算及运算符

    0、逻辑运算符 1、位逻辑非运算 2、位逻辑与运算 4、位逻辑异或运算 5、位左移运算 6、位右移运算

    C# Onnx 通用OCR识别 文字识别 中文识别 服务 win7 32位操作系统可用.rar

    C# Onnx 通用OCR识别 文字识别 中文识别 服务 win7 32位操作系统可用.rar

    C# 操作系统位数(x32/64)

    源码 , c#获取系统位数 使用前,首先选中解决方案中的 引用 –&gt;添加引用 -&gt; .net 活页下找到 System.Management;

    C#下利用类的方式封装了位操作类,仿照C语言的联合体配合结构体的方式

    C#下利用类的方式封装了位操作类,仿照C语言的联合体配合结构体的方式。里面包含了无符号8位的字节操作类和无符号16位的字节操作。使用方式为直接创建实例类就行了,位操作为逻辑型变量的方式。

    C# ModBus通信读写操作,ModBus Rtu串口通信,ModBus Tcp通信,全开源可使用

    C#对三菱和西门子,欧姆龙等支持Modbus的服务器进行读写,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 1)附件C#代码全开源,所有代码公开,不使用第三方组件。...

    C# 操作INI文件

    C# 操作INI文件 辅助类 操作非常方便。

    C#、VB.NET实现的位操作类库

    用于C#和VB.NET的二进制位操作类库,支持移位、循环移位、位设置和位状态查询等

    C#常见位操作 与或非 BitOperation

    Console.WriteLine($"与(&)操作符的位都为1时,才为1,其他都为0,因此与(&)操作符的结果范围在[0, Math.Min(x,y)],x,y均为正整数"); Console.WriteLine($"或(|)操作符的位都为0时,才为0,其他都为1,因此或(|)...

    C#异步数据接收串口操作

    使用C#调用传统32位API实现串口操作,整个结构特别的简单,完整代码,下载即可使用!

    C#开发opcserver含源码

    一、32位操作系统,执行 OPCdist 库文件\opcdist\ 目录下的setupxp.bat 如果是64位的系统,请自己修改setupxp.bat批处理文件,我的操作系统是win7X64,是可以成功的. 二、建立自己的C#工程.并将Wtopcsvr9.0\Wtopcsvr...

    C#中 委托的详细讲解

    C#程序设计中有关委托的一些位内容:委托的概念 面向对象的核心思想之一就是将数据和对数据的操作封装为一个整体……

    C#-字符串操作类

    C#-字符串操作类(替换字符串中危险字符、指定位置替换字符串、指定长度缩减字段并加...、指定字符串分割字符串、指定字符串位置获取字符串、过滤SQL中非法字符、检查SQL语句中是否有非法关键字、随机字符串生成、...

    C#(VB.net)数据库访问操作类库

    C#(VB.net)数据库访问操作类库 你知道,一些类库把常用的操作封装起来,以后可以直接调用,就节省了普通开发人员的大量精力. ...说白了就是数据库系统 ...类库还分X86 和ANY 两种平台,满足将来 64位操作系统需要!

    C#的串口通信上位机和下位机源程序.pdf

    C#的串口通信上位机和下位机源程序,适合新手入门操作

    C#优化字符串操作

    保留2位有效小数及四舍五入 5.url传递中文的解决方案 6.把123456789转换为12-345-6789的3种方法 7.交换两个指定位置字符的4种方法 8.“%10”的妙用 9.输出21个AAAAAAAAAAAAAAAAAAAAA的巧妙做法

    C#钩子实现键盘鼠标监控和操作的源码(禁止非法用途)

    使用C#编写的源码,内含4个工具类(键盘监控、键盘输入、鼠标监控、鼠标输入),根据需要自己调用,窗口程序仅做实例效果参考,VS2015,64位win10实测可用,目前尚未实现驱动级,编写外挂可能不会有效果

    c#开发opcserver例子(内附源代码)

    一、32位操作系统,执行 OPCdist 库文件\opcdist\ 目录下的setupxp.bat 如果是64位的系统,请自己修改setupxp.bat批处理文件,我的操作系统是win7X64,是可以成功的. 二、建立自己的C#工程.并将Wtopcsvr9.0\Wtopcsvr...

    C#操作sqllite的接口

    C#操作sqllite的接口,ke同时兼容32位和64位操作系统

Global site tag (gtag.js) - Google Analytics