当前位置: 首页 > news >正文

C#—BitArray点阵列

C#—BitArray点阵列

在 C# 中,BitArray 类用来管理一个紧凑型的位值数组,数组中的值均为布尔类型,其中 true(1)表示此位为开启,false(0)表示此位为关闭。

当需要存储位(英文名“bit”数据存储的最小单位,也可称为比特),但事先又不知道具体位数时,就可以使用点阵列。当需要访问点阵列中的元素时,可以使用整型索引从点阵列中访问指定元素,索引从零开始。

文章来源: C#教程(非常详细) - C语言中文网

BitArray 类中的属性

属性描述
Count    获取点阵列中包含的元素个数
IsReadOnly判断 点阵列是否只读
Item获取或设置点阵列中指定位置的值
Length    获取或设置点阵列中的元素个数
BitArray类中的方法

    
 

BitArray 类中的方法

方法名描述
public BitArray And(BitArray value) 对当前的点阵列中的元素和指定点阵列中相对应的元素执行按位与操作
public bool Get(int index)    获取点阵列中指定位置的位值
public BitArray Not()反转当前点阵列中所有位的值,即将 true 设置为 false,将 false 设置为 true
public BitArray Or(BitArray value) 对当前点阵列中的元素和指定点阵列中的相对应的元素执行按位或操作
public void Set(int index, bool value) 把点阵列中指定位置的位设置为指定的值
public void SetAll(bool value) 把点阵列中的所有位设置为指定的值
public BitArray Xor(BitArray value)对当前点阵列中的元素和指定点阵列中的相对应的元素执行按位异或操作

    


   
BitArray属性和方法的使用

class Demo{static void Main(string[] args){// 创建两个大小为 8 的点阵列BitArray ba1 = new BitArray(8);BitArray ba2 = new BitArray(8);byte[] a = { 60 };byte[] b = { 13 };// 把值 60 和 13 存储到点阵列中ba1 = new BitArray(a);ba2 = new BitArray(b);// ba1 的内容Console.WriteLine("点阵列 ba1: 60");for (int i = 0; i < ba1.Count; i++){Console.Write("{0, -6} ", ba1[i]);}Console.WriteLine();// ba2 的内容Console.WriteLine("点阵列 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);// ba3 的内容Console.WriteLine("执行按位与操作后的点阵列 ba3:");for (int i = 0; i < ba3.Count; i++){Console.Write("{0, -6} ", ba3[i]);}Console.WriteLine();ba3 = ba1.Or(ba2);// ba3 的内容Console.WriteLine("执行按位或操作后的点阵列 ba3:");for (int i = 0; i < ba3.Count; i++){Console.Write("{0, -6} ", ba3[i]);}Console.WriteLine();Console.ReadKey();}}

结果:

点阵列 ba1: 60
False  False  True   True   True   True   False  False
点阵列 ba2: 13
True   False  True   True   False  False  False  False
执行按位与操作后的点阵列 ba3:
False  False  True   True   False  False  False  False
执行按位或操作后的点阵列 ba3:
True   False  True   True   False  False  False  False

http://www.lryc.cn/news/503053.html

相关文章:

  • 国产自主可控新征程:华为原生鸿蒙系统与鲲鹏认证
  • esxi8 虚拟机使用ubuntu22模板后 没有ip配置文件,只有ipv6链接正常使用
  • 【Qualcomm】IPQ5018查看连接终端RSSI、SNR、NF方法
  • 【构建工具】现代开发的重要角色
  • 【Linux系统】—— 初识 shell 与 Linux 中的用户
  • 二维码数据集,使用yolov,voc,coco标注,3044张各种二维码原始图片(未图像增强)
  • Vue指令
  • 数据保护策略:如何保障重要信息的安全
  • Chrome webdriver下载-避坑
  • 递归求最大公约数
  • 关于在浏览器里面获取手机方向的事件
  • STM32 出租车计价器系统设计(一) 江科大源码改写
  • eclipse rcp-创建rcp-创建target
  • 微信小程序--创建一个日历组件
  • 质量问题分析与改进常见方法
  • 质数的和与积
  • 数据结构 (35)分配类排序
  • Cesium隐藏默认控件
  • Spark SQL 执行计划解析源码分析
  • rabbitMq举例
  • 奇怪的知识又增加了:ESP32下的Lisp编程=>ULisp--Lisp for microcontrollers
  • 渗透测试之信息收集
  • 基本分页存储管理
  • SQLServer到MySQL的数据高效迁移方案分享
  • 软考:工作后再考的性价比分析
  • shell编程(完结)
  • UNIX数据恢复—UNIX系统常见故障问题和数据恢复方案
  • adb连接逍遥安卓模拟器失败的问题解决方案
  • 【昇腾】NPU ID:物理ID、逻辑ID、芯片映射关系
  • Three.js曲线篇 8.管道漫游