C#中的位操作

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

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

举例说明:

using System;
/*
 * 作者:周公
 * 说明:本程序用以说明在C#中如何进行位操作。
 * 日期:2007-09-17
 * 
*/
public class BitAction
{
    
public static void Main(string[] args)
    {
        
int[] power = new int[] { 1248163264 };
        
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();
    }
}


运行结果:
posted @   周金桥  阅读(554)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示