Macro ibig::ubig[][src]

macro_rules! ubig {
    ($val:ident) => { ... };
    ($val:ident base $radix:literal) => { ... };
    ($val:literal) => { ... };
    ($val:literal base $radix:literal) => { ... };
}

Create a UBig value.

Usually just pass use a numeric literal. This works for bases 2, 8, 10 or 16 using standard prefixes:

let a = ubig!(100);
let b = ubig!(0b101);
let c = ubig!(0o202);
let d = ubig!(0x2ff);

For an arbitrary base, add base N:

let e = ubig!(a3gp1 base 32);

If the sequence of digits is not a valid Rust literal or identifier, put an underscore before the digits. This may be necessary when:

  • There are a lot of digits. Rust will fail to compile without an underscore if the number wouldn’t fit in u128.
  • The first digit is decimal, but not all digits are decimal.
let f = ubig!(_314159265358979323846264338327950288419716939937);
let g = ubig!(_0b102 base 32);
let h = ubig!(b102 base 32);
assert_eq!(g, h);
let i = ubig!(_100ef base 32);