Struct num_bigint::BigUint
[−]
[src]
pub struct BigUint { // some fields omitted }
A big unsigned integer type.
A BigUint
-typed value BigUint { data: vec!(a, b, c) }
represents a number
(a + b * big_digit::BASE + c * big_digit::BASE^2)
.
Methods
impl BigUint
fn new(digits: Vec<BigDigit>) -> BigUint
Creates and initializes a BigUint
.
The digits are in little-endian base 232.
fn from_slice(slice: &[BigDigit]) -> BigUint
Creates and initializes a BigUint
.
The digits are in little-endian base 232.
fn from_bytes_be(bytes: &[u8]) -> BigUint
Creates and initializes a BigUint
.
The bytes are in big-endian byte order.
Examples
use num_bigint::BigUint; assert_eq!(BigUint::from_bytes_be(b"A"), BigUint::parse_bytes(b"65", 10).unwrap()); assert_eq!(BigUint::from_bytes_be(b"AA"), BigUint::parse_bytes(b"16705", 10).unwrap()); assert_eq!(BigUint::from_bytes_be(b"AB"), BigUint::parse_bytes(b"16706", 10).unwrap()); assert_eq!(BigUint::from_bytes_be(b"Hello world!"), BigUint::parse_bytes(b"22405534230753963835153736737", 10).unwrap());
fn from_bytes_le(bytes: &[u8]) -> BigUint
Creates and initializes a BigUint
.
The bytes are in little-endian byte order.
fn to_bytes_le(&self) -> Vec<u8>
Returns the byte representation of the BigUint
in little-endian byte order.
Examples
use num_bigint::BigUint; let i = BigUint::parse_bytes(b"1125", 10).unwrap(); assert_eq!(i.to_bytes_le(), vec![101, 4]);
fn to_bytes_be(&self) -> Vec<u8>
Returns the byte representation of the BigUint
in big-endian byte order.
Examples
use num_bigint::BigUint; let i = BigUint::parse_bytes(b"1125", 10).unwrap(); assert_eq!(i.to_bytes_be(), vec![4, 101]);
fn to_str_radix(&self, radix: u32) -> String
Returns the integer formatted as a string in the given radix.
radix
must be in the range [2, 36]
.
Examples
use num_bigint::BigUint; let i = BigUint::parse_bytes(b"ff", 16).unwrap(); assert_eq!(i.to_str_radix(16), "ff");
fn parse_bytes(buf: &[u8], radix: u32) -> Option<BigUint>
Creates and initializes a BigUint
.
Examples
use num_bigint::{BigUint, ToBigUint}; assert_eq!(BigUint::parse_bytes(b"1234", 10), ToBigUint::to_biguint(&1234)); assert_eq!(BigUint::parse_bytes(b"ABCD", 16), ToBigUint::to_biguint(&0xABCD)); assert_eq!(BigUint::parse_bytes(b"G", 16), None);
fn bits(&self) -> usize
Determines the fewest bits necessary to express the BigUint
.
Trait Implementations
impl PartialEq for BigUint
impl Eq for BigUint
impl PartialOrd for BigUint
fn partial_cmp(&self, other: &BigUint) -> Option<Ordering>
1.0.0fn lt(&self, other: &Rhs) -> bool
1.0.0fn le(&self, other: &Rhs) -> bool
1.0.0fn gt(&self, other: &Rhs) -> bool
1.0.0fn ge(&self, other: &Rhs) -> bool
impl Ord for BigUint
impl Default for BigUint
impl Display for BigUint
impl LowerHex for BigUint
impl UpperHex for BigUint
impl Binary for BigUint
impl Octal for BigUint
impl FromStr for BigUint
type Err = ParseBigIntError
fn from_str(s: &str) -> Result<BigUint, ParseBigIntError>
impl Num for BigUint
type FromStrRadixErr = ParseBigIntError
fn from_str_radix(s: &str, radix: u32) -> Result<BigUint, ParseBigIntError>
Creates and initializes a BigUint
.
impl BitAnd<BigUint> for BigUint
impl<'a> BitAnd<BigUint> for &'a BigUint
impl<'a, 'b> BitAnd<&'b BigUint> for &'a BigUint
impl<'a> BitAnd<&'a BigUint> for BigUint
impl BitOr<BigUint> for BigUint
impl<'a> BitOr<BigUint> for &'a BigUint
impl<'a, 'b> BitOr<&'b BigUint> for &'a BigUint
impl<'a> BitOr<&'a BigUint> for BigUint
impl BitXor<BigUint> for BigUint
impl<'a> BitXor<BigUint> for &'a BigUint
impl<'a, 'b> BitXor<&'b BigUint> for &'a BigUint
impl<'a> BitXor<&'a BigUint> for BigUint
impl Shl<usize> for BigUint
impl<'a> Shl<usize> for &'a BigUint
impl Shr<usize> for BigUint
impl<'a> Shr<usize> for &'a BigUint
impl Zero for BigUint
impl One for BigUint
impl Unsigned for BigUint
impl Add<BigUint> for BigUint
impl<'a> Add<BigUint> for &'a BigUint
impl<'a, 'b> Add<&'b BigUint> for &'a BigUint
impl<'a> Add<&'a BigUint> for BigUint
impl Sub<BigUint> for BigUint
impl<'a> Sub<BigUint> for &'a BigUint
impl<'a, 'b> Sub<&'b BigUint> for &'a BigUint
impl<'a> Sub<&'a BigUint> for BigUint
impl Mul<BigUint> for BigUint
impl<'a> Mul<&'a BigUint> for BigUint
impl<'a> Mul<BigUint> for &'a BigUint
impl<'a, 'b> Mul<&'b BigUint> for &'a BigUint
impl Div<BigUint> for BigUint
impl<'a> Div<&'a BigUint> for BigUint
impl<'a> Div<BigUint> for &'a BigUint
impl<'a, 'b> Div<&'b BigUint> for &'a BigUint
impl Rem<BigUint> for BigUint
impl<'a> Rem<&'a BigUint> for BigUint
impl<'a> Rem<BigUint> for &'a BigUint
impl<'a, 'b> Rem<&'b BigUint> for &'a BigUint
impl Neg for BigUint
impl<'a> Neg for &'a BigUint
impl CheckedAdd for BigUint
fn checked_add(&self, v: &BigUint) -> Option<BigUint>
impl CheckedSub for BigUint
fn checked_sub(&self, v: &BigUint) -> Option<BigUint>
impl CheckedMul for BigUint
fn checked_mul(&self, v: &BigUint) -> Option<BigUint>
impl CheckedDiv for BigUint
fn checked_div(&self, v: &BigUint) -> Option<BigUint>
impl Integer for BigUint
fn div_rem(&self, other: &BigUint) -> (BigUint, BigUint)
fn div_floor(&self, other: &BigUint) -> BigUint
fn mod_floor(&self, other: &BigUint) -> BigUint
fn div_mod_floor(&self, other: &BigUint) -> (BigUint, BigUint)
fn gcd(&self, other: &BigUint) -> BigUint
Calculates the Greatest Common Divisor (GCD) of the number and other
.
The result is always positive.
fn lcm(&self, other: &BigUint) -> BigUint
Calculates the Lowest Common Multiple (LCM) of the number and other
.
fn divides(&self, other: &BigUint) -> bool
Deprecated, use is_multiple_of
instead.
fn is_multiple_of(&self, other: &BigUint) -> bool
Returns true
if the number is a multiple of other
.
fn is_even(&self) -> bool
Returns true
if the number is divisible by 2
.
fn is_odd(&self) -> bool
Returns true
if the number is not divisible by 2
.