- C# 基础教程
- C# - 首页
- C# - 概述
- C# - 环境
- C# - 程序结构
- C# - 基本语法
- C# - 数据类型
- C# - 类型转换
- C# - 变量
- C# - 常量
- C# - 运算符
- C# - 决策
- C# - 循环
- C# - 封装
- C# - 方法
- C# - 可空类型
- C# - 数组
- C# - 字符串
- C# - 结构体
- C# - 枚举
- C# - 类
- C# - 继承
- C# - 多态
- C# - 运算符重载
- C# - 接口
- C# - 命名空间
- C# - 预处理器指令
- C# - 正则表达式
- C# - 异常处理
- C# - 文件I/O
- C# 高级教程
- C# - 属性
- C# - 反射
- C# - 属性
- C# - 索引器
- C# - 委托
- C# - 事件
- C# - 集合
- C# - 泛型
- C# - 匿名方法
- C# - 不安全代码
- C# - 多线程
- C# 有用资源
- C# - 问题与解答
- C# - 快速指南
- C# - 有用资源
- C# - 讨论
C# - BitArray 类
BitArray 类管理一个紧凑的位值数组,这些位值表示为布尔值,其中 true 表示位打开 (1),false 表示位关闭 (0)。
当您需要存储位但事先不知道位数时,可以使用它。您可以使用从零开始的整数索引访问 BitArray 集合中的项。
BitArray 类的属性和方法
下表列出了一些常用的BitArray类的属性:
序号 | 属性及说明 |
---|---|
1 | Count 获取 BitArray 中包含的元素个数。 |
2 | IsReadOnly 获取一个值,该值指示 BitArray 是否为只读。 |
3 | Item 获取或设置 BitArray 中特定位置的位的值。 |
4 | Length 获取或设置 BitArray 中的元素个数。 |
下表列出了一些常用的BitArray类的方法:
序号 | 方法及说明 |
---|---|
1 | public BitArray And(BitArray value); 对当前 BitArray 中的元素与指定 BitArray 中的对应元素执行按位 AND 运算。 |
2 | public bool Get(int index); 获取 BitArray 中特定位置的位的值。 |
3 | public BitArray Not(); 反转当前 BitArray 中的所有位值,以便将设置为 true 的元素更改为 false,将设置为 false 的元素更改为 true。 |
4 | public BitArray Or(BitArray value); 对当前 BitArray 中的元素与指定 BitArray 中的对应元素执行按位 OR 运算。 |
5 | public void Set(int index, bool value); 将 BitArray 中特定位置的位设置为指定值。 |
6 | public void SetAll(bool value); 将 BitArray 中的所有位设置为指定值。 |
7 | public BitArray Xor(BitArray value); 对当前 BitArray 中的元素与指定 BitArray 中的对应元素执行按位异或运算。 |
示例
以下示例演示了 BitArray 类的用法:
using System; using System.Collections; namespace CollectionsApplication { class Program { static void Main(string[] args) { //creating two bit arrays of size 8 BitArray ba1 = new BitArray(8); BitArray ba2 = new BitArray(8); byte[] a = { 60 }; byte[] b = { 13 }; //storing the values 60, and 13 into the bit arrays ba1 = new BitArray(a); ba2 = new BitArray(b); //content of ba1 Console.WriteLine("Bit array ba1: 60"); for (int i = 0; i < ba1.Count; i++) { Console.Write("{0, -6} ", ba1[i]); } Console.WriteLine(); //content of ba2 Console.WriteLine("Bit array ba2: 13"); for (int i = 0; i < ba2.Count; i++) { Console.Write("{0, -6} ", ba2[i]); } Console.WriteLine(); BitArray ba3 = new BitArray(8); ba3 = ba1.And(ba2); //content of ba3 Console.WriteLine("Bit array ba3 after AND operation: 12"); for (int i = 0; i < ba3.Count; i++) { Console.Write("{0, -6} ", ba3[i]); } Console.WriteLine(); ba3 = ba1.Or(ba2); //content of ba3 Console.WriteLine("Bit array ba3 after OR operation: 61"); for (int i = 0; i < ba3.Count; i++) { Console.Write("{0, -6} ", ba3[i]); } Console.WriteLine(); Console.ReadKey(); } } }
编译并执行上述代码后,将产生以下结果:
Bit array ba1: 60 False False True True True True False False Bit array ba2: 13 True False True True False False False False Bit array ba3 after AND operation: 12 False False True True False False False False Bit array ba3 after OR operation: 61 True False True True False False False False