您好,登录后才能下订单哦!
这篇“C#怎么实现BitArray转换成int和string”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#怎么实现BitArray转换成int和string”文章吧。
BitArray的基础可以看菜鸟编程
BitArray 类管理一个紧凑型的位值数组,它使用布尔值来表示,其中 true 表示位是开启的(1),false 表示位是关闭的(0)。
当您需要存储位,但是事先不知道位数时,则使用点阵列。您可以使用整型索引从点阵列集合中访问各项,索引从零开始。
下表列出了 BitArray 类的一些常用的 属性:
属性 | 描述 |
---|---|
Count | 获取 BitArray 中包含的元素个数。 |
IsReadOnly | 获取一个值,表示 BitArray 是否只读。 |
Item | 获取或设置 BitArray 中指定位置的位的值。 |
Length | 获取或设置 BitArray 中的元素个数。 |
下表列出了 BitArray 类的一些常用的 方法:
序号 | 方法名 & 描述 |
---|---|
1 | public BitArray And( BitArray value ); 对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位与操作。 |
2 | public bool Get( int index ); 获取 BitArray 中指定位置的位的值。 |
3 | public BitArray Not(); 把当前的 BitArray 中的位值反转,以便设置为 true 的元素变为 false,设置为 false 的元素变为 true。 |
4 | public BitArray Or( BitArray value ); 对当前的 BitArray 中的元素和指定的 BitArray 中的相对应的元素执行按位或操作。 |
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的大概,我们来做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”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。