C# 位数组
前言
如果需要处理许多位,就可以使用类 BitArray 和结构 BitVector32。BitArray 位于命名空间System.Collections,BitVector32 位于命名空间 System.Collections.Specialized。
一、BitArray 类 引用类型
类 BitArray 是一个引用类型,包含一个 int 数组,每 32 位使用一个新整数
个人理解:BitArray相当于一个bool类型的数组bool[]
官方解释:类 BitArray 是一个引用类型,包含一个 int 数组,每 32 位使用一个新整数
Eg
其他方法:And(), Or(), Xor()、Get()
Eg
二、BitVector32 结构 值类型
如果事先知道需要的位数,就可以使用BitVector32 结构替代 BitArray。BitVector32 效率较高,因为它是一个值类型,在整数栈上存储位。一个整数可以存储 32 位。*['vektə] n. 矢量;带菌者;航线 vt. 用无线电导航
Eg
除了用CreateMask()方法创建掩码之外,还可以自己定义掩码,也可以一次设置多个位,八进制010与二进制值1010相同。可以这样表达
bits1[010] = true;
区别
这两种类型最重要的区别是,BitArray 可以重新设置大小,如果事先不知道需要的位数,就可以使用 BitArray,它可以包含非常多的位。BitVector32是基于栈的,因此比较快。BitVector32仅包含 32 位,存储在一个整数中。
作者:PEPE
出处:http://pepe.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述