How to define an exabyte constant in Rust

1 Answer

0 votes
/*
    Rust's u64 type is an unsigned 64‑bit integer.
    Maximum value: 18,446,744,073,709,551,615 (~1.84 × 10^19)

    Exabyte sizes:

        1 EiB = 2^60  = 1,152,921,504,606,846,976 bytes
        1 EB  = 10^18 = 1,000,000,000,000,000,000 bytes

    Both values fit safely inside u64.
*/

// Binary exabyte (exbibyte), using a bit shift.
// 1u64 << 60 = 2^60 bytes.
pub const EXABYTE_EIB: u64 = 1u64 << 60;

// Decimal exabyte (SI), using a readable numeric literal.
pub const EXABYTE_EB: u64 = 1_000_000_000_000_000_000u64;

fn main() {
    println!("1 EiB = {} bytes", EXABYTE_EIB);
    println!("1 EB  = {} bytes", EXABYTE_EB);
}


/*
run:

1 EiB = 1152921504606846976 bytes
1 EB  = 1000000000000000000 bytes

*/

 



answered May 3 by avibootz
...