Struct num::BigUint
[−]
[src]
pub struct BigUint { /* 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<u32>) -> BigUint
Creates and initializes a BigUint
.
The digits are in little-endian base 232.
fn from_slice(slice: &[u32]) -> 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
extern crate num; fn main() { 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()); }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());Run
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
extern crate num; fn main() { use num_bigint::BigUint; let i = BigUint::parse_bytes(b"1125", 10).unwrap(); assert_eq!(i.to_bytes_le(), vec![101, 4]); }use num_bigint::BigUint; let i = BigUint::parse_bytes(b"1125", 10).unwrap(); assert_eq!(i.to_bytes_le(), vec![101, 4]);Run
fn to_bytes_be(&self) -> Vec<u8>
Returns the byte representation of the BigUint
in big-endian byte order.
Examples
extern crate num; fn main() { use num_bigint::BigUint; let i = BigUint::parse_bytes(b"1125", 10).unwrap(); assert_eq!(i.to_bytes_be(), vec![4, 101]); }use num_bigint::BigUint; let i = BigUint::parse_bytes(b"1125", 10).unwrap(); assert_eq!(i.to_bytes_be(), vec![4, 101]);Run
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
extern crate num; fn main() { use num_bigint::BigUint; let i = BigUint::parse_bytes(b"ff", 16).unwrap(); assert_eq!(i.to_str_radix(16), "ff"); }use num_bigint::BigUint; let i = BigUint::parse_bytes(b"ff", 16).unwrap(); assert_eq!(i.to_str_radix(16), "ff");Run
fn parse_bytes(buf: &[u8], radix: u32) -> Option<BigUint>
Creates and initializes a BigUint
.
Examples
extern crate num; fn main() { 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); }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);Run
fn bits(&self) -> usize
Determines the fewest bits necessary to express the BigUint
.
Trait Implementations
impl ToBigInt for BigUint
impl CheckedAdd for BigUint
fn checked_add(&self, v: &BigUint) -> Option<BigUint>
Adds two numbers, checking for overflow. If overflow happens, None
is returned. Read more
impl<'a> Sub<&'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 Num for BigUint
type FromStrRadixErr = ParseBigIntError
fn from_str_radix(s: &str, radix: u32) -> Result<BigUint, ParseBigIntError>
Creates and initializes a BigUint
.
impl LowerHex for BigUint
impl ToPrimitive for BigUint
fn to_i64(&self) -> Option<i64>
Converts the value of self
to an i64
.
fn to_u64(&self) -> Option<u64>
Converts the value of self
to an u64
.
fn to_f32(&self) -> Option<f32>
Converts the value of self
to an f32
.
fn to_f64(&self) -> Option<f64>
Converts the value of self
to an f64
.
fn to_isize(&self) -> Option<isize>
Converts the value of self
to an isize
.
fn to_i8(&self) -> Option<i8>
Converts the value of self
to an i8
.
fn to_i16(&self) -> Option<i16>
Converts the value of self
to an i16
.
fn to_i32(&self) -> Option<i32>
Converts the value of self
to an i32
.
fn to_usize(&self) -> Option<usize>
Converts the value of self
to a usize
.
fn to_u8(&self) -> Option<u8>
Converts the value of self
to an u8
.
fn to_u16(&self) -> Option<u16>
Converts the value of self
to an u16
.
fn to_u32(&self) -> Option<u32>
Converts the value of self
to an u32
.
impl<'a, 'b> Div<&'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 Integer for BigUint
fn div_rem(&self, other: &BigUint) -> (BigUint, BigUint)
Simultaneous truncated integer division and modulus. Returns (quotient, remainder)
. Read more
fn div_floor(&self, other: &BigUint) -> BigUint
Floored integer division. Read more
fn mod_floor(&self, other: &BigUint) -> BigUint
Floored integer modulo, satisfying: Read more
fn div_mod_floor(&self, other: &BigUint) -> (BigUint, BigUint)
Simultaneous floored integer division and modulus. Returns (quotient, remainder)
. Read more
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
.
impl Shl<usize> for BigUint
impl<'a> Shl<usize> for &'a BigUint
impl CheckedDiv for BigUint
fn checked_div(&self, v: &BigUint) -> Option<BigUint>
Divides two numbers, checking for underflow, overflow and division by zero. If any of that happens, None
is returned. Read more
impl Neg for BigUint
impl<'a> Neg for &'a BigUint
impl PartialEq<BigUint> for BigUint
impl<'a> BitAnd<&'a BigUint> for BigUint
impl BitAnd<BigUint> for BigUint
impl<'a> BitAnd<BigUint> for &'a BigUint
impl<'a, 'b> BitAnd<&'b BigUint> for &'a BigUint
impl ToBigUint for BigUint
fn to_biguint(&self) -> Option<BigUint>
Converts the value of self
to a BigUint
.
impl Debug for BigUint
impl From<u64> for BigUint
impl From<u8> for BigUint
impl From<u16> for BigUint
impl From<u32> for BigUint
impl From<usize> for BigUint
impl Eq for BigUint
impl Shr<usize> for BigUint
impl<'a> Shr<usize> for &'a BigUint
impl CheckedMul for BigUint
fn checked_mul(&self, v: &BigUint) -> Option<BigUint>
Multiplies two numbers, checking for underflow or overflow. If underflow or overflow happens, None
is returned. Read more
impl UpperHex for BigUint
impl Clone for BigUint
fn clone(&self) -> BigUint
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<'a> BitOr<&'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, 'b> Mul<&'b BigUint> for &'a BigUint
type Output = BigUint
The resulting type after applying the *
operator
fn mul(self, other: &BigUint) -> BigUint
The method for the *
operator
impl Mul<BigUint> for BigUint
type Output = BigUint
The resulting type after applying the *
operator
fn mul(self, other: BigUint) -> BigUint
The method for the *
operator
impl<'a> Mul<&'a BigUint> for BigUint
type Output = BigUint
The resulting type after applying the *
operator
fn mul(self, other: &BigUint) -> BigUint
The method for the *
operator
impl<'a> Mul<BigUint> for &'a BigUint
type Output = BigUint
The resulting type after applying the *
operator
fn mul(self, other: BigUint) -> BigUint
The method for the *
operator
impl One for BigUint
impl Ord for BigUint
impl Zero for BigUint
fn zero() -> BigUint
Returns the additive identity element of Self
, 0
. Read more
fn is_zero(&self) -> bool
Returns true
if self
is equal to the additive identity.
impl Display for BigUint
impl Default for BigUint
impl Decodable for BigUint
impl Hash for BigUint
impl FromPrimitive for BigUint
fn from_i64(n: i64) -> Option<BigUint>
Convert an i64
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_u64(n: u64) -> Option<BigUint>
Convert an u64
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_f64(n: f64) -> Option<BigUint>
Convert a f64
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_isize(n: isize) -> Option<Self>
Convert an isize
to return an optional value of this type. If the value cannot be represented by this value, the None
is returned. Read more
fn from_i8(n: i8) -> Option<Self>
Convert an i8
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_i16(n: i16) -> Option<Self>
Convert an i16
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_i32(n: i32) -> Option<Self>
Convert an i32
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_usize(n: usize) -> Option<Self>
Convert a usize
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_u8(n: u8) -> Option<Self>
Convert an u8
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_u16(n: u16) -> Option<Self>
Convert an u16
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_u32(n: u32) -> Option<Self>
Convert an u32
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
fn from_f32(n: f32) -> Option<Self>
Convert a f32
to return an optional value of this type. If the type cannot be represented by this value, the None
is returned. Read more
impl<'a> Add<&'a BigUint> for BigUint
impl Add<BigUint> for BigUint
impl<'a> Add<BigUint> for &'a BigUint
impl<'a, 'b> Add<&'b BigUint> for &'a BigUint
impl Binary for BigUint
impl Unsigned for BigUint
impl PartialOrd<BigUint> for BigUint
fn partial_cmp(&self, other: &BigUint) -> Option<Ordering>
impl Encodable for BigUint
impl<'a, 'b> Rem<&'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 FromStr for BigUint
type Err = ParseBigIntError
fn from_str(s: &str) -> Result<BigUint, ParseBigIntError>
impl CheckedSub for BigUint
fn checked_sub(&self, v: &BigUint) -> Option<BigUint>
Subtracts two numbers, checking for underflow. If underflow happens, None
is returned. Read more