Struct num_bigint::BigInt [] [src]

pub struct BigInt {
    // some fields omitted
}

A big signed integer type.

Methods

impl BigInt
[src]

fn new(sign: Sign, digits: Vec<BigDigit>) -> BigInt

Creates and initializes a BigInt.

The digits are in little-endian base 232.

fn from_biguint(sign: Sign, data: BigUint) -> BigInt

Creates and initializes a BigInt.

The digits are in little-endian base 232.

fn from_slice(sign: Sign, slice: &[BigDigit]) -> BigInt

Creates and initializes a BigInt.

fn from_bytes_be(sign: Sign, bytes: &[u8]) -> BigInt

Creates and initializes a BigInt.

The bytes are in big-endian byte order.

Examples

use num_bigint::{BigInt, Sign};

assert_eq!(BigInt::from_bytes_be(Sign::Plus, b"A"),
           BigInt::parse_bytes(b"65", 10).unwrap());
assert_eq!(BigInt::from_bytes_be(Sign::Plus, b"AA"),
           BigInt::parse_bytes(b"16705", 10).unwrap());
assert_eq!(BigInt::from_bytes_be(Sign::Plus, b"AB"),
           BigInt::parse_bytes(b"16706", 10).unwrap());
assert_eq!(BigInt::from_bytes_be(Sign::Plus, b"Hello world!"),
           BigInt::parse_bytes(b"22405534230753963835153736737", 10).unwrap());

fn from_bytes_le(sign: Sign, bytes: &[u8]) -> BigInt

Creates and initializes a BigInt.

The bytes are in little-endian byte order.

fn to_bytes_le(&self) -> (Sign, Vec<u8>)

Returns the sign and the byte representation of the BigInt in little-endian byte order.

Examples

use num_bigint::{ToBigInt, Sign};

let i = -1125.to_bigint().unwrap();
assert_eq!(i.to_bytes_le(), (Sign::Minus, vec![101, 4]));

fn to_bytes_be(&self) -> (Sign, Vec<u8>)

Returns the sign and the byte representation of the BigInt in big-endian byte order.

Examples

use num_bigint::{ToBigInt, Sign};

let i = -1125.to_bigint().unwrap();
assert_eq!(i.to_bytes_be(), (Sign::Minus, 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::BigInt;

let i = BigInt::parse_bytes(b"ff", 16).unwrap();
assert_eq!(i.to_str_radix(16), "ff");

fn sign(&self) -> Sign

Returns the sign of the BigInt as a Sign.

Examples

use num_bigint::{ToBigInt, Sign};

assert_eq!(ToBigInt::to_bigint(&1234).unwrap().sign(), Sign::Plus);
assert_eq!(ToBigInt::to_bigint(&-4321).unwrap().sign(), Sign::Minus);
assert_eq!(ToBigInt::to_bigint(&0).unwrap().sign(), Sign::NoSign);

fn parse_bytes(buf: &[u8], radix: u32) -> Option<BigInt>

Creates and initializes a BigInt.

Examples

use num_bigint::{BigInt, ToBigInt};

assert_eq!(BigInt::parse_bytes(b"1234", 10), ToBigInt::to_bigint(&1234));
assert_eq!(BigInt::parse_bytes(b"ABCD", 16), ToBigInt::to_bigint(&0xABCD));
assert_eq!(BigInt::parse_bytes(b"G", 16), None);

fn bits(&self) -> usize

Determines the fewest bits necessary to express the BigInt, not including the sign.

fn to_biguint(&self) -> Option<BigUint>

Converts this BigInt into a BigUint, if it's not negative.

fn checked_add(&self, v: &BigInt) -> Option<BigInt>

fn checked_sub(&self, v: &BigInt) -> Option<BigInt>

fn checked_mul(&self, v: &BigInt) -> Option<BigInt>

fn checked_div(&self, v: &BigInt) -> Option<BigInt>

Trait Implementations

impl ToBigUint for BigInt
[src]

fn to_biguint(&self) -> Option<BigUint>

Converts the value of self to a BigUint.

impl Hash for BigInt
[src]

fn hash<__H: Hasher>(&self, __arg_0: &mut __H)

Feeds this value into the state given, updating the hasher as necessary.

fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher
1.3.0

Feeds a slice of this type into the state provided.

impl Debug for BigInt
[src]

fn fmt(&self, __arg_0: &mut Formatter) -> Result

Formats the value using the given formatter.

impl Clone for BigInt
[src]

fn clone(&self) -> BigInt

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 Decodable for BigInt
[src]

fn decode<__D: Decoder>(__arg_0: &mut __D) -> Result<BigInt, __D::Error>

impl Encodable for BigInt
[src]

fn encode<__S: Encoder>(&self, __arg_0: &mut __S) -> Result<(), __S::Error>

impl PartialEq for BigInt
[src]

fn eq(&self, other: &BigInt) -> bool

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &Rhs) -> bool
1.0.0

This method tests for !=.

impl Eq for BigInt
[src]

impl PartialOrd for BigInt
[src]

fn partial_cmp(&self, other: &BigInt) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more

fn lt(&self, other: &Rhs) -> bool
1.0.0

This method tests less than (for self and other) and is used by the < operator. Read more

fn le(&self, other: &Rhs) -> bool
1.0.0

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

fn gt(&self, other: &Rhs) -> bool
1.0.0

This method tests greater than (for self and other) and is used by the > operator. Read more

fn ge(&self, other: &Rhs) -> bool
1.0.0

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Ord for BigInt
[src]

fn cmp(&self, other: &BigInt) -> Ordering

This method returns an Ordering between self and other. Read more

impl Default for BigInt
[src]

fn default() -> BigInt

Returns the "default value" for a type. Read more

impl Display for BigInt
[src]

fn fmt(&self, f: &mut Formatter) -> Result

Formats the value using the given formatter.

impl Binary for BigInt
[src]

fn fmt(&self, f: &mut Formatter) -> Result

Formats the value using the given formatter.

impl Octal for BigInt
[src]

fn fmt(&self, f: &mut Formatter) -> Result

Formats the value using the given formatter.

impl LowerHex for BigInt
[src]

fn fmt(&self, f: &mut Formatter) -> Result

Formats the value using the given formatter.

impl UpperHex for BigInt
[src]

fn fmt(&self, f: &mut Formatter) -> Result

Formats the value using the given formatter.

impl FromStr for BigInt
[src]

type Err = ParseBigIntError

The associated error which can be returned from parsing.

fn from_str(s: &str) -> Result<BigIntParseBigIntError>

Parses a string s to return a value of this type. Read more

impl Num for BigInt
[src]

type FromStrRadixErr = ParseBigIntError

fn from_str_radix(s: &str, radix: u32) -> Result<BigIntParseBigIntError>

Creates and initializes a BigInt.

impl Shl<usize> for BigInt
[src]

type Output = BigInt

The resulting type after applying the << operator

fn shl(self, rhs: usize) -> BigInt

The method for the << operator

impl<'a> Shl<usize> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the << operator

fn shl(self, rhs: usize) -> BigInt

The method for the << operator

impl Shr<usize> for BigInt
[src]

type Output = BigInt

The resulting type after applying the >> operator

fn shr(self, rhs: usize) -> BigInt

The method for the >> operator

impl<'a> Shr<usize> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the >> operator

fn shr(self, rhs: usize) -> BigInt

The method for the >> operator

impl Zero for BigInt
[src]

fn zero() -> BigInt

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 One for BigInt
[src]

fn one() -> BigInt

Returns the multiplicative identity element of Self, 1. Read more

impl Signed for BigInt
[src]

fn abs(&self) -> BigInt

Computes the absolute value. Read more

fn abs_sub(&self, other: &BigInt) -> BigInt

The positive difference of two numbers. Read more

fn signum(&self) -> BigInt

Returns the sign of the number. Read more

fn is_positive(&self) -> bool

Returns true if the number is positive and false if the number is zero or negative.

fn is_negative(&self) -> bool

Returns true if the number is negative and false if the number is zero or positive.

impl<'a, 'b> Add<&'b BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the + operator

fn add(self, other: &BigInt) -> BigInt

The method for the + operator

impl<'a> Add<BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the + operator

fn add(self, other: BigInt) -> BigInt

The method for the + operator

impl<'a> Add<&'a BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the + operator

fn add(self, other: &BigInt) -> BigInt

The method for the + operator

impl Add<BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the + operator

fn add(self, other: BigInt) -> BigInt

The method for the + operator

impl<'a, 'b> Sub<&'b BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the - operator

fn sub(self, other: &BigInt) -> BigInt

The method for the - operator

impl<'a> Sub<BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the - operator

fn sub(self, other: BigInt) -> BigInt

The method for the - operator

impl<'a> Sub<&'a BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the - operator

fn sub(self, other: &BigInt) -> BigInt

The method for the - operator

impl Sub<BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the - operator

fn sub(self, other: BigInt) -> BigInt

The method for the - operator

impl Mul<BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the * operator

fn mul(self, other: BigInt) -> BigInt

The method for the * operator

impl<'a> Mul<&'a BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the * operator

fn mul(self, other: &BigInt) -> BigInt

The method for the * operator

impl<'a> Mul<BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the * operator

fn mul(self, other: BigInt) -> BigInt

The method for the * operator

impl<'a, 'b> Mul<&'b BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the * operator

fn mul(self, other: &BigInt) -> BigInt

The method for the * operator

impl Div<BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the / operator

fn div(self, other: BigInt) -> BigInt

The method for the / operator

impl<'a> Div<&'a BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the / operator

fn div(self, other: &BigInt) -> BigInt

The method for the / operator

impl<'a> Div<BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the / operator

fn div(self, other: BigInt) -> BigInt

The method for the / operator

impl<'a, 'b> Div<&'b BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the / operator

fn div(self, other: &BigInt) -> BigInt

The method for the / operator

impl Rem<BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the % operator

fn rem(self, other: BigInt) -> BigInt

The method for the % operator

impl<'a> Rem<&'a BigInt> for BigInt
[src]

type Output = BigInt

The resulting type after applying the % operator

fn rem(self, other: &BigInt) -> BigInt

The method for the % operator

impl<'a> Rem<BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the % operator

fn rem(self, other: BigInt) -> BigInt

The method for the % operator

impl<'a, 'b> Rem<&'b BigInt> for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the % operator

fn rem(self, other: &BigInt) -> BigInt

The method for the % operator

impl Neg for BigInt
[src]

type Output = BigInt

The resulting type after applying the - operator

fn neg(self) -> BigInt

The method for the unary - operator

impl<'a> Neg for &'a BigInt
[src]

type Output = BigInt

The resulting type after applying the - operator

fn neg(self) -> BigInt

The method for the unary - operator

impl CheckedAdd for BigInt
[src]

fn checked_add(&self, v: &BigInt) -> Option<BigInt>

Adds two numbers, checking for overflow. If overflow happens, None is returned. Read more

impl CheckedSub for BigInt
[src]

fn checked_sub(&self, v: &BigInt) -> Option<BigInt>

Subtracts two numbers, checking for underflow. If underflow happens, None is returned. Read more

impl CheckedMul for BigInt
[src]

fn checked_mul(&self, v: &BigInt) -> Option<BigInt>

Multiplies two numbers, checking for underflow or overflow. If underflow or overflow happens, None is returned. Read more

impl CheckedDiv for BigInt
[src]

fn checked_div(&self, v: &BigInt) -> Option<BigInt>

Divides two numbers, checking for underflow, overflow and division by zero. If any of that happens, None is returned. Read more

impl Integer for BigInt
[src]

fn div_rem(&self, other: &BigInt) -> (BigInt, BigInt)

Simultaneous truncated integer division and modulus. Returns (quotient, remainder). Read more

fn div_floor(&self, other: &BigInt) -> BigInt

Floored integer division. Read more

fn mod_floor(&self, other: &BigInt) -> BigInt

Floored integer modulo, satisfying: Read more

fn div_mod_floor(&self, other: &BigInt) -> (BigInt, BigInt)

Simultaneous floored integer division and modulus. Returns (quotient, remainder). Read more

fn gcd(&self, other: &BigInt) -> BigInt

Calculates the Greatest Common Divisor (GCD) of the number and other.

The result is always positive.

fn lcm(&self, other: &BigInt) -> BigInt

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &BigInt) -> bool

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &BigInt) -> 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 ToPrimitive for BigInt
[src]

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 FromPrimitive for BigInt
[src]

fn from_i64(n: i64) -> Option<BigInt>

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<BigInt>

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<BigInt>

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 From<i64> for BigInt
[src]

fn from(n: i64) -> Self

Performs the conversion.

impl From<i8> for BigInt
[src]

fn from(n: i8) -> Self

Performs the conversion.

impl From<i16> for BigInt
[src]

fn from(n: i16) -> Self

Performs the conversion.

impl From<i32> for BigInt
[src]

fn from(n: i32) -> Self

Performs the conversion.

impl From<isize> for BigInt
[src]

fn from(n: isize) -> Self

Performs the conversion.

impl From<u64> for BigInt
[src]

fn from(n: u64) -> Self

Performs the conversion.

impl From<u8> for BigInt
[src]

fn from(n: u8) -> Self

Performs the conversion.

impl From<u16> for BigInt
[src]

fn from(n: u16) -> Self

Performs the conversion.

impl From<u32> for BigInt
[src]

fn from(n: u32) -> Self

Performs the conversion.

impl From<usize> for BigInt
[src]

fn from(n: usize) -> Self

Performs the conversion.

impl From<BigUint> for BigInt
[src]

fn from(n: BigUint) -> Self

Performs the conversion.

impl ToBigInt for BigInt
[src]

fn to_bigint(&self) -> Option<BigInt>

Converts the value of self to a BigInt.