Struct num::bigint::BigInt [-] [+] [src]

pub struct BigInt {
    // some fields omitted
}

A big signed integer type.

Methods

impl BigInt

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

extern crate num; fn main() { use num::bigint::{BigInt, Sign}; assert_eq!(BigInt::from_bytes_be(Sign::Plus, "A".as_bytes()), BigInt::parse_bytes("65".as_bytes(), 10).unwrap()); assert_eq!(BigInt::from_bytes_be(Sign::Plus, "AA".as_bytes()), BigInt::parse_bytes("16705".as_bytes(), 10).unwrap()); assert_eq!(BigInt::from_bytes_be(Sign::Plus, "AB".as_bytes()), BigInt::parse_bytes("16706".as_bytes(), 10).unwrap()); assert_eq!(BigInt::from_bytes_be(Sign::Plus, "Hello world!".as_bytes()), BigInt::parse_bytes("22405534230753963835153736737".as_bytes(), 10).unwrap()); }
use num::bigint::{BigInt, Sign};

assert_eq!(BigInt::from_bytes_be(Sign::Plus, "A".as_bytes()),
           BigInt::parse_bytes("65".as_bytes(), 10).unwrap());
assert_eq!(BigInt::from_bytes_be(Sign::Plus, "AA".as_bytes()),
           BigInt::parse_bytes("16705".as_bytes(), 10).unwrap());
assert_eq!(BigInt::from_bytes_be(Sign::Plus, "AB".as_bytes()),
           BigInt::parse_bytes("16706".as_bytes(), 10).unwrap());
assert_eq!(BigInt::from_bytes_be(Sign::Plus, "Hello world!".as_bytes()),
           BigInt::parse_bytes("22405534230753963835153736737".as_bytes(), 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.

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

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

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

Creates and initializes a BigInt.

Examples

extern crate num; fn main() { use num::bigint::{BigInt, ToBigInt}; assert_eq!(BigInt::parse_bytes("1234".as_bytes(), 10), ToBigInt::to_bigint(&1234)); assert_eq!(BigInt::parse_bytes("ABCD".as_bytes(), 16), ToBigInt::to_bigint(&0xABCD)); assert_eq!(BigInt::parse_bytes("G".as_bytes(), 16), None); }
use num::bigint::{BigInt, ToBigInt};

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

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

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

impl PartialEq for BigInt

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

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

impl Eq for BigInt

fn assert_receiver_is_total_eq(&self)

impl PartialOrd for BigInt

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

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

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

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

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

impl Ord for BigInt

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

impl Default for BigInt

fn default() -> BigInt

impl Display for BigInt

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

impl Hash for BigInt

fn hash<H>(&self, state: &mut H) where H: Hasher

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

impl FromStr for BigInt

type Err = ParseBigIntError

fn from_str(s: &str) -> Result<BigInt, ParseBigIntError>

impl Num for BigInt

type FromStrRadixErr = ParseBigIntError

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

Creates and initializes a BigInt.

impl Shl<usize> for BigInt

type Output = BigInt

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

impl Shr<usize> for BigInt

type Output = BigInt

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

impl Zero for BigInt

fn zero() -> BigInt

fn is_zero(&self) -> bool

impl One for BigInt

fn one() -> BigInt

impl Signed for BigInt

fn abs(&self) -> BigInt

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

fn signum(&self) -> BigInt

fn is_positive(&self) -> bool

fn is_negative(&self) -> bool

impl Add<BigInt> for BigInt

type Output = BigInt

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

impl<'a> Add<&'a BigInt> for BigInt

type Output = BigInt

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

impl Sub<BigInt> for BigInt

type Output = BigInt

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

impl<'a> Sub<&'a BigInt> for BigInt

type Output = BigInt

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

impl Mul<BigInt> for BigInt

type Output = BigInt

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

impl<'a> Mul<&'a BigInt> for BigInt

type Output = BigInt

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

impl Div<BigInt> for BigInt

type Output = BigInt

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

impl<'a> Div<&'a BigInt> for BigInt

type Output = BigInt

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

impl Rem<BigInt> for BigInt

type Output = BigInt

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

impl<'a> Rem<&'a BigInt> for BigInt

type Output = BigInt

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

impl Neg for BigInt

type Output = BigInt

fn neg(self) -> BigInt

impl CheckedAdd for BigInt

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

impl CheckedSub for BigInt

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

impl CheckedMul for BigInt

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

impl CheckedDiv for BigInt

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

impl Integer for BigInt

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

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

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

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

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

fn to_i64(&self) -> Option<i64>

fn to_u64(&self) -> Option<u64>

fn to_isize(&self) -> Option<isize>

fn to_i8(&self) -> Option<i8>

fn to_i16(&self) -> Option<i16>

fn to_i32(&self) -> Option<i32>

fn to_usize(&self) -> Option<usize>

fn to_u8(&self) -> Option<u8>

fn to_u16(&self) -> Option<u16>

fn to_u32(&self) -> Option<u32>

fn to_f32(&self) -> Option<f32>

fn to_f64(&self) -> Option<f64>

impl FromPrimitive for BigInt

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

fn from_u64(n: u64) -> Option<BigInt>

fn from_isize(n: isize) -> Option<Self>

fn from_i8(n: i8) -> Option<Self>

fn from_i16(n: i16) -> Option<Self>

fn from_i32(n: i32) -> Option<Self>

fn from_usize(n: usize) -> Option<Self>

fn from_u8(n: u8) -> Option<Self>

fn from_u16(n: u16) -> Option<Self>

fn from_u32(n: u32) -> Option<Self>

fn from_f32(n: f32) -> Option<Self>

fn from_f64(n: f64) -> Option<Self>

impl ToBigInt for BigInt

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

Derived Implementations

impl Debug for BigInt

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

impl Decodable for BigInt

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

impl Encodable for BigInt

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

impl Clone for BigInt

fn clone(&self) -> BigInt

fn clone_from(&mut self, source: &Self)