#位字段 #位集合 #布尔 #单个 #打包 #操作 #存储

bitval

用于通过位操作在变量中打包布尔值

1 个不稳定版本

使用旧的Rust 2015

0.1.0 2024年8月8日

#804 in 数据结构

Download history 72/week @ 2024-08-02 40/week @ 2024-08-09

112 每月下载

MIT 许可证

5KB

位字段

一个 Bitfield 是一种数据结构,允许高效地存储和操作单个位。此实现使用 Vec<u64> 存储位,以实现紧凑的存储和快速访问。

概述

Bitfield 结构体提供了创建指定大小位字段、设置单个位值和获取单个位值的方法。

用法

创建位字段

要创建一个具有特定位数的新的 Bitfield,请使用 new 方法

let size = 128;
let mut bitfield = Bitfield::new(size);

这将创建一个包含128位,所有位初始设置为0的 Bitfield

设置位

要设置特定位的值,请使用 set 方法

bitfield.set(5, true); // Set the 5th bit to 1
bitfield.set(10, false); // Set the 10th bit to 0

如果提供的索引超出范围,则方法将引发“索引超出范围”的错误信息。

获取位

要获取特定位的值,请使用 get 方法

let value = bitfield.get(5); // Get the value of the 5th bit
println!("Value of 5th bit: {}", value);

如果提供的索引超出范围,则方法将引发“索引超出范围”的错误信息。

示例

以下是如何使用 Bitfield 结构体的示例

use bitval::Bitfield;

fn main() {
    let size = 128;
    let mut bitfield = Bitfield::new(size);

    bitfield.set(5, true);
    bitfield.set(10, false);

    let value = bitfield.get(5);
    println!("Value of 5th bit: {}", value); // Output: Value of 5th bit: true
}

Cargo.toml

要将 bitval 集成到您的项目中,请将以下条目添加到您的 Cargo.toml 文件中

[dependencies]
bitval = "0.1.0" // Replace with the current version

这将编译和运行测试,验证 Bitfield 实现的行为是否正确。

许可证

本项目受MIT许可证许可。

无运行时依赖