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
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
fn to_biguint(&self) -> Option<BigUint>
impl PartialEq for BigInt
impl Eq for BigInt
impl PartialOrd for BigInt
fn partial_cmp(&self, other: &BigInt) -> 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 BigInt
impl Default for BigInt
impl Display for BigInt
impl Binary for BigInt
impl Octal for BigInt
impl LowerHex for BigInt
impl UpperHex for BigInt
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
impl<'a> Shl<usize> for &'a BigInt
impl Shr<usize> for BigInt
impl<'a> Shr<usize> for &'a BigInt
impl Zero for BigInt
impl One for 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<'a, 'b> Add<&'b BigInt> for &'a BigInt
impl<'a> Add<BigInt> for &'a BigInt
impl<'a> Add<&'a BigInt> for BigInt
impl Add<BigInt> for BigInt
impl<'a, 'b> Sub<&'b BigInt> for &'a BigInt
impl<'a> Sub<BigInt> for &'a BigInt
impl<'a> Sub<&'a BigInt> for BigInt
impl Sub<BigInt> for BigInt
impl Mul<BigInt> for BigInt
impl<'a> Mul<&'a BigInt> for BigInt
impl<'a> Mul<BigInt> for &'a BigInt
impl<'a, 'b> Mul<&'b BigInt> for &'a BigInt
impl Div<BigInt> for BigInt
impl<'a> Div<&'a BigInt> for BigInt
impl<'a> Div<BigInt> for &'a BigInt
impl<'a, 'b> Div<&'b BigInt> for &'a BigInt
impl Rem<BigInt> for BigInt
impl<'a> Rem<&'a BigInt> for BigInt
impl<'a> Rem<BigInt> for &'a BigInt
impl<'a, 'b> Rem<&'b BigInt> for &'a BigInt
impl Neg for BigInt
impl<'a> Neg for &'a 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
.