Module malachite_nz::natural::conversion::digits::power_of_2_digit_iterable
source · [−]Expand description
An implementation of
PowerOf2DigitIterable
, a
trait for iterating over a Natural
’s base-$2^k$ digits.
power_of_2_digits
extern crate itertools;
extern crate malachite_base;
use itertools::Itertools;
use malachite_base::num::basic::traits::Zero;
use malachite_base::num::conversion::traits::PowerOf2DigitIterable;
use malachite_nz::natural::Natural;
let n = Natural::ZERO;
assert!(PowerOf2DigitIterable::<u8>::power_of_2_digits(&n, 2).next().is_none());
// 107 = 1223_4
let n = Natural::from(107u32);
assert_eq!(
PowerOf2DigitIterable::<u32>::power_of_2_digits(&n, 2).collect_vec(),
vec![3, 2, 2, 1]
);
let n = Natural::ZERO;
assert!(PowerOf2DigitIterable::<u8>::power_of_2_digits(&n, 2).next_back().is_none());
// 107 = 1223_4
let n = Natural::from(107u32);
assert_eq!(
PowerOf2DigitIterable::<u32>::power_of_2_digits(&n, 2).rev().collect_vec(),
vec![1, 2, 2, 3]
);