How to define an exabyte constant in Ruby

1 Answer

0 votes
# Ruby integers have arbitrary precision, so extremely large values
# like exabytes fit naturally without overflow.
#
# 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
#
# Ruby style:
#   - Constants use ALL_CAPS
#   - Underscores allowed in numeric literals for readability

# Binary exabyte (exbibyte), using a bit shift.
# 1 << 60 = 2**60 bytes.
EXABYTE_EIB = 1 << 60 # not a constant

# Decimal exabyte (SI), using a readable numeric literal.
EXABYTE_EB = 1_000_000_000_000_000_000

puts "1 EiB = #{EXABYTE_EIB} bytes"
puts "1 EB  = #{EXABYTE_EB} bytes"



# run:
#
# 1 EiB = 1152921504606846976 bytes
# 1 EB  = 1000000000000000000 bytes
#

 



answered May 3 by avibootz
...