C# BitArray点阵列的使用

 更新时间:2023年03月31日 14:15:44   作者:C语言中文网  
本文主要介绍了C# BitArray点阵列的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

BitArray 类中的属性

下表列出了 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 类中的完整属性和方法介绍,可以查阅 C# 官方文档

【示例】下面通过示例演示 BitArray 类属性和方法的使用:

using System;
using System.Collections;

namespace c.biancheng.net
{
    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

到此这篇关于C# BitArray点阵列的使用的文章就介绍到这了,更多相关C# BitArray点阵列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • implicit关键字做自定义类型隐式转换的方法

    implicit关键字做自定义类型隐式转换的方法

    implicit 关键字用于声明隐式的用户定义类型转换运算符。如果转换过程可以确保不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换,这篇文章就给大家详细介绍implicit关键字做自定义类型隐式转换的方法,需要的朋友可以参考下
    2015-08-08
  • 在Form_Load里面调用Focus无效的解决方法

    在Form_Load里面调用Focus无效的解决方法

    在调用Form_Load的时候,Form其实还没有进入展示阶段,自然Focus()调用也就没效果了。
    2013-02-02
  • 用C#+Selenium+ChromeDriver爬取网页(模拟真实的用户浏览行为)

    用C#+Selenium+ChromeDriver爬取网页(模拟真实的用户浏览行为)

    这篇文章主要介绍了用C#+Selenium+ChromeDriver爬取网页,模拟真实的用户浏览行为,需要的小伙伴可以参考一下
    2022-01-01
  • C#设计模式之Facade外观模式解决天河城购物问题示例

    C#设计模式之Facade外观模式解决天河城购物问题示例

    这篇文章主要介绍了C#设计模式之Facade外观模式解决天河城购物问题,简单描述了外观模式的定义并结合具体实例分析了外观模式解决购物问题的相关步骤与操作技巧,需要的朋友可以参考下
    2017-09-09
  • c#语言入门类型和成员

    c#语言入门类型和成员

    这篇文章主要介绍了c#语言入门类型和成员,类 是最基本的 C# 类型。 类是一种数据结构,可在一个单元中就将状态和操作结合起来。 类为类实例提供了定义。类支持继承和多形性,即派生类 以扩展和专门针对基类的机制,下面来看看文章的详细介绍
    2021-12-12
  • C#操作文件和注册表的示例详解

    C#操作文件和注册表的示例详解

    这篇文章主要为大家详细介绍了C#中操作文件和注册表的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考下
    2024-03-03
  • WPF实现钟表效果

    WPF实现钟表效果

    这篇文章主要为大家详细介绍了WPF实现钟表效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • c#使用file.copy实现文件备份示例

    c#使用file.copy实现文件备份示例

    需要把D盘Source文件夹中的所有名称包含"LTE"的子文件夹Copy到E盘的Backup文件中,实现特定文件夹每天备份,下面使用file.copy实现一下这个功能
    2014-03-03
  • 解析C#面向对象编程中方法(method)的使用

    解析C#面向对象编程中方法(method)的使用

    这篇文章主要介绍了解析C#面向对象编程中方法(method)的使用,方法是面向对象编程语言中的基本特性,需要的朋友可以参考下
    2016-01-01
  • C# 泛型的约束

    C# 泛型的约束

    本文将详细介绍C# 泛型的约束:引用类型约束;值类型约束;构造函数类型约束;转换类型约束;组合约束的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02

最新评论