sign_extend

Function sign_extend 

Source
pub fn sign_extend(val: u64, bits: u32) -> i64
Expand description

Arbitrary sign extension for manual mode API.

See BitReader::read_signed_bits for more information

It is assumed the input value has zeros for bits above the given position.

use bitter::{BitReader, LittleEndianReader};
let mut bits = LittleEndianReader::new(&[0x9c]);
bits.refill_lookahead();
let bits_to_read = 4;
let value = bits.peek(bits_to_read);
assert_eq!(value, 12);
assert_eq!(bitter::sign_extend(value, bits_to_read), -4);
bits.consume(bits_to_read);