10 个版本 (3 个稳定版)

使用旧 Rust 2015

1.1.0 2018年10月12日
1.0.0 2018年6月2日
0.3.0 2017年2月8日
0.1.3 2016年6月8日
0.1.0 2015年9月17日

#34 in #bit-manipulation

Download history 921/week @ 2024-03-15 936/week @ 2024-03-22 647/week @ 2024-03-29 917/week @ 2024-04-05 1417/week @ 2024-04-12 1749/week @ 2024-04-19 844/week @ 2024-04-26 1263/week @ 2024-05-03 6227/week @ 2024-05-10 5106/week @ 2024-05-17 6940/week @ 2024-05-24 3835/week @ 2024-05-31 652/week @ 2024-06-07 617/week @ 2024-06-14 336/week @ 2024-06-21 2/week @ 2024-06-28

1,931 每月下载量
tak 中使用

MIT/Apache

13KB
229

twiddle

一个用于位操作的轻量级库。

文档

用法

您可以通过将以下内容添加到您的 Cargo.toml 文件来使用它

[dependencies]
twiddle = "1.1"

并将其添加到 crate 根目录的顶部(main.rslib.rs

extern crate twiddle;

use twiddle::Twiddle;

示例

extern crate twiddle;

use twiddle::Twiddle;

struct UnpackedF32 {
    negative: bool,
    exponent: i16,
    fraction: u32,
}

impl From<f32> for UnpackedF32 {
    fn from(f: f32) -> UnpackedF32 {
        let b = f.to_bits();
        UnpackedF32 {
            negative: b.bit(31),
            exponent: (b.bits(30..=23) as i16) - 127,
            fraction: b.bits(22..=0)
        }
    }
}

fn main() {
    for f in -5..=5 {
        let u = UnpackedF32::from(f as f32);
        println!("{:+} = {}1.{:023b} * 2^{}",
            f,
            match u.negative { false => "+", true => "-" },
            u.fraction,
            u.exponent
        );
    }
}

许可证

根据您的选择,许可协议为

贡献

除非您明确表示,否则根据 Apache-2.0 许可证定义,您提交给作品的所有有意贡献均应按上述方式双许可,无需任何附加条款或条件。

无运行时依赖