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点阵列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#多态的三种实现方式(小结)

    C#多态的三种实现方式(小结)

    这篇文章主要介绍了C#多态的三种实现方式(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Unity实现简单的虚拟摇杆

    Unity实现简单的虚拟摇杆

    这篇文章主要为大家详细介绍了Unity实现简单的虚拟摇杆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • Winform中Treeview实现按需加载的方法

    Winform中Treeview实现按需加载的方法

    这篇文章主要介绍了Winform中Treeview实现按需加载的方法,针对大数据量的情况下非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • C#遍历List并删除某个元素的方法

    C#遍历List并删除某个元素的方法

    这篇文章主要介绍了C#遍历List并删除某个元素的方法,实例分析了正序与倒序遍历list及删除元素的使用技巧,需要的朋友可以参考下
    2015-02-02
  • 浅谈C#指针问题

    浅谈C#指针问题

    在C#中,有时候希望通过指针来操作内存,这样可以提高效率。我们可以用unsafe关键字修饰含有指针操作的程序段
    2016-01-01
  • C#实现封装常用Redis工具类的示例代码

    C#实现封装常用Redis工具类的示例代码

    这篇文章主要为大家详细介绍了C#实现封装常用Redis工具类的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • C#开发微信门户及应用(5) 用户分组信息管理

    C#开发微信门户及应用(5) 用户分组信息管理

    这篇文章主要为大家详细介绍了C#开发微信门户及应用第五篇,用户分组信息管理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • C#学习笔记整理_浅谈Math类的方法

    C#学习笔记整理_浅谈Math类的方法

    下面小编就为大家带来一篇C#学习笔记整理_浅谈Math类的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • C# WPF 通过委托实现多窗口间的传值的方法

    C# WPF 通过委托实现多窗口间的传值的方法

    这篇文章主要介绍了C# WPF 通过委托实现多窗口间的传值的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • C# InitializeComponent()方法案例详解

    C# InitializeComponent()方法案例详解

    这篇文章主要介绍了C# InitializeComponent()方法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论