Expand description
A small library for bit-twiddling.
§Example
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
);
}
}
Structs§
- Split
- An iterator over sets of bits. See
Twiddle::split()
for more information.