C# BitArray(点矩阵)转换成int和string的方法实现

 更新时间:2022年05月10日 11:39:44   作者:涛神-DevExpress资深开发者  
BitArray 类管理一个紧凑型的位值数组,它使用布尔值来表示,本文主要介绍了C# BitArray(点矩阵)转换成int和string的方法实现,具有一定的参考价值,感兴趣的可以了解一下

BitArray的基础可以看菜鸟编程

BitArray 类管理一个紧凑型的位值数组,它使用布尔值来表示,其中 true 表示位是开启的(1),false 表示位是关闭的(0)。

当您需要存储位,但是事先不知道位数时,则使用点阵列。您可以使用整型索引从点阵列集合中访问各项,索引从零开始。

BitArray 类的方法和属性

下表列出了 BitArray 类的一些常用的 属性:

属性描述
Count获取 BitArray 中包含的元素个数。
IsReadOnly获取一个值,表示 BitArray 是否只读。
Item获取或设置 BitArray 中指定位置的位的值。
Length获取或设置 BitArray 中的元素个数。

下表列出了 BitArray 类的一些常用的 方法:

序号方法名 & 描述
1public BitArray And( BitArray value );
对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位与操作。
2public bool Get( int index );
获取 BitArray 中指定位置的位的值。
3public BitArray Not();
把当前的 BitArray 中的位值反转,以便设置为 true 的元素变为 false,设置为 false 的元素变为 true。
4public BitArray Or( BitArray value );
对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位或操作。
5public void Set( int index, bool value );
把 BitArray 中指定位置的位设置为指定的值。
6public void SetAll( bool value );
把 BitArray 中的所有位设置为指定的值。
7public BitArray Xor( BitArray value );
对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位异或操作。

了解了BitArray的大概,我们来做BitArray和Int和string的转换,

BitArray转成Int方法

/// <summary>
/// 点矩阵转成int
/// </summary>
public static int BitArrayToInt(BitArray bit)
{
    int[] res = new int[1];
    for (int i = 0; i < bit.Count; i++)
    {
        bit.CopyTo(res, 0);
    }
    return res[0];
}

BitArray转成string方法(如果有乱码,请自行修改编码)

/// <summary>
/// 点矩阵转换成string
/// </summary>
public static string BitArrayToStr(BitArray ba)
{
    byte[] strArr = new byte[ba.Length / 8];
    for (int i = 0; i < ba.Length / 8; i++)
    {
        for (int index = i * 8, m = 1; index < i * 8 + 8; index++, m *= 2)
        {
            strArr[i] += ba.Get(index) ? (byte)m : (byte)0;
        }
    }
    return Encoding.Default.GetString(strArr);
}

在LinqPad上调用测试(Dump是LinqPad的输出的方法):

void Main()
{
    var bi = new BitArray(new bool[] { true, false, false, false, false, true, false, false });
    bool[] bs = bi.Cast<bool>().ToArray();//直接转成bool数组,但这个结果无意义
 
    BitArrayToInt(bi).Dump("点矩阵转成int:");//点矩阵转成int
    BitArrayToStr(bi).Dump("点矩阵转成字符串:");//点矩阵转成字符串
 
    //测试将字符串转成点矩阵再转回字符串
    var str = "涛神";
    //点矩阵只支持bool[]、byte[]、int[],所以字符串需要先转成byte[]
    byte[] byteArray = System.Text.Encoding.Default.GetBytes(str);
    var ba = new BitArray(byteArray);//创建一个点矩阵
    BitArrayToStr(ba).Dump("将点矩阵转成字符串:");//将点矩阵转成字符串
}

结果:

 到此这篇关于C# BitArray(点矩阵)转换成int和string的方法实现的文章就介绍到这了,更多相关C# BitArray转换成int和string内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#交错数组知识点分析

    C#交错数组知识点分析

    在本篇文章里小编给大家整理的是关于C#交错数组知识点分析,需要的朋友们参考下。
    2019-11-11
  • C#使用Unity实现剪刀石头布游戏

    C#使用Unity实现剪刀石头布游戏

    这篇文章主要为大家详细介绍了C#语言使用Unity实现剪刀石头布游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • C#使用RSA加密解密文件

    C#使用RSA加密解密文件

    这篇文章主要为大家详细介绍了C#使用RSA加密解密文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • C#通过ADO.NET访问数据的方法详解

    C#通过ADO.NET访问数据的方法详解

    在 C# 的应用开发中,数据访问是极为关键的部分,ADO.NET作为.NET 框架下用于数据访问的核心技术,能够帮助开发者便捷地与各类数据源进行交互,本文将深入剖析ADO.NET,带你掌握使用 C# 通过ADO.NET访问数据的方法,需要的朋友可以参考下
    2025-02-02
  • C#留言时间格式化

    C#留言时间格式化

    本文给大家分享的是仿微博或者空间中,发布内容之后提示NN秒之前留言的代码,主要是通过发布时间和当前时间直接的差值来计算,十分的简单实用,有需要的小伙伴可以参考下。
    2015-05-05
  • C#算法之整数反转

    C#算法之整数反转

    这篇文章介绍了C#算法之整数反转,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • C#采用mouse_event函数实现模拟鼠标功能

    C#采用mouse_event函数实现模拟鼠标功能

    这篇文章主要介绍了C#模拟鼠标点击小功能,通过代码向大家做分析,需要的朋友可以参考下
    2015-07-07
  • c# dynamic的好处

    c# dynamic的好处

    这篇文章主要介绍了c# dynamic的好处,以示例代码帮助大家更好的了解和学习,感兴趣的朋友可以了解下
    2020-12-12
  • C#计算矩阵的逆矩阵方法实例分析

    C#计算矩阵的逆矩阵方法实例分析

    这篇文章主要介绍了C#计算矩阵的逆矩阵方法,较为详细的分析了逆矩阵的计算原理与相关的C#实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#实现鼠标移动到曲线图上显示值的方法

    C#实现鼠标移动到曲线图上显示值的方法

    这篇文章主要介绍了C#实现鼠标移动到曲线图上显示值的方法,是C#的WinForm窗体程序设计中非常实用的技巧,需要的朋友可以参考下
    2014-10-10

最新评论