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
1,931 每月下载量
在 tak 中使用
13KB
229 行
twiddle
一个用于位操作的轻量级库。
用法
您可以通过将以下内容添加到您的 Cargo.toml
文件来使用它
[dependencies]
twiddle = "1.1"
并将其添加到 crate 根目录的顶部(main.rs
或 lib.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 版(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则根据 Apache-2.0 许可证定义,您提交给作品的所有有意贡献均应按上述方式双许可,无需任何附加条款或条件。