Module malachite_nz::natural::conversion::digits::general_digits

source ·
Expand description

Implementations of Digits, a trait for extracting digits from Naturals and constructing Naturals from digits.

§to_digits_asc

use malachite_base::num::basic::traits::{Two, Zero};
use malachite_base::num::conversion::traits::Digits;
use malachite_nz::natural::Natural;

assert!(Natural::ZERO.to_digits_asc(&6u64).is_empty());
assert_eq!(Natural::TWO.to_digits_asc(&6u32), &[2]);
assert_eq!(Natural::from(123456u32).to_digits_asc(&3u16), &[0, 1, 1, 0, 0, 1, 1, 2, 0, 0, 2]);

§to_digits_desc

use malachite_base::num::basic::traits::{Two, Zero};
use malachite_base::num::conversion::traits::Digits;
use malachite_nz::natural::Natural;

assert!(Natural::ZERO.to_digits_desc(&6u64).is_empty());
assert_eq!(Natural::TWO.to_digits_desc(&6u32), &[2]);
assert_eq!(Natural::from(123456u32).to_digits_desc(&3u16), &[2, 0, 0, 2, 1, 1, 0, 0, 1, 1, 0]);

§from_digits_asc

use malachite_base::num::conversion::traits::Digits;
use malachite_base::strings::ToDebugString;
use malachite_nz::natural::Natural;

assert_eq!(
    Natural::from_digits_asc(&64u64, [0, 0, 0].iter().cloned()).to_debug_string(),
    "Some(0)"
);
assert_eq!(
    Natural::from_digits_asc(&3u64, [0, 1, 1, 0, 0, 1, 1, 2, 0, 0, 2].iter().cloned())
            .to_debug_string(),
    "Some(123456)"
);
assert_eq!(
    Natural::from_digits_asc(&8u16, [3, 7, 1].iter().cloned()).to_debug_string(),
    "Some(123)"
);
assert_eq!(
    Natural::from_digits_asc(&8u16, [3, 10, 1].iter().cloned()).to_debug_string(),
    "None"
);

§from_digits_desc

use malachite_base::num::conversion::traits::Digits;
use malachite_base::strings::ToDebugString;
use malachite_nz::natural::Natural;

assert_eq!(
    Natural::from_digits_desc(&64u64, [0, 0, 0].iter().cloned()).to_debug_string(),
    "Some(0)"
);
assert_eq!(
    Natural::from_digits_desc(&3u64, [2, 0, 0, 2, 1, 1, 0, 0, 1, 1, 0].iter().cloned())
            .to_debug_string(),
    "Some(123456)"
);
assert_eq!(
    Natural::from_digits_desc(&8u16, [1, 7, 3].iter().cloned()).to_debug_string(),
    "Some(123)"
);
assert_eq!(
    Natural::from_digits_desc(&8u16, [3, 10, 1].iter().cloned()).to_debug_string(),
    "None"
);