How to define a petabyte constant in Scala

1 Answer

0 votes
object PetabyteExample {

  /*
     In Scala, the largest primitive integer type is Long (64‑bit signed).
     Its maximum value is about 9.22 × 10^18.

     A petabyte fits comfortably:

         1 PiB = 2^50  = 1,125,899,906,842,624 bytes
         1 PB  = 10^15 = 1,000,000,000,000,000 bytes

     Scala allows:
       - bit shifting on Long values
       - readable numeric literals with underscores
       - BigInt for arbitrary‑precision integers
  */

  // Binary petabyte (pebibyte), using a bit shift.
  // 1L << 50 = 2^50 bytes.
  val PetabytePiB: Long = 1L << 50

  // Decimal petabyte (SI petabyte), using a readable numeric literal.
  val PetabytePB: Long = 1_000_000_000_000_000L

  def main(args: Array[String]): Unit = {
    println(s"1 PiB = $PetabytePiB bytes")
    println(s"1 PB  = $PetabytePB bytes")
  }
}


/*
run:

1 PiB = 1125899906842624 bytes
1 PB  = 1000000000000000 bytes

*/

 



answered May 3 by avibootz
...