Memory Sizes: kilo mega giga tera peta exa

Here is a table summarizing large numbers, their names, and the number of bits they require to state in binary. In computer architecture, we need to know how memory sizes relate to address sizes in bits. For example, 1 exabyte requires 60 bits to address its contents. In cryptography, we need to relate the entropy of a key (its range of possible values) to the number of bits required to store it. An 80-bit key contains about 1024 values.

The table reflects the latest integer SI nomenclature: peta, exa, zetta, and yotta. Many people memorize the smaller values naturally through working with computer technology over time or during a professional career.

This article contains the following:

The following table includes every official SI prefix as of 2020. It’s also available in PNG format.

Size in
Kkilo-1031,0001,024 = 21010
Mmega-1061,00021,0242 = 22020
Ggiga-1091,00031,0243 = 23030
Ttera-10121,00041,0244 = 24040
Ppeta-10151,00051,0245 = 25050
Eexa-10181,00061,0246 = 26060
Zzetta-10211,00071,0247 = 27070
Yyotta-10241,00081,0248 = 28080

Address Size Shortcut

Here is a simple shortcut for estimating the number of bits required to address RAM storage of a given size. It also works for converting the range of values in a totally-random key into the number of bits required to store it.

103 ~ 210

To put this into practice, we do the following:

  1. Write in decimal the maximum number of bytes in the RAM.
  2. Count the number of sets of three zeros (the “thousands”) in the number.
  3. Multiply the number of thousands by ten. The result estimates the number of bits.

Let’s work out an example with a trillion. For example, we want to handle addresses in a terabyte RAM: a trillion-byte memory. How many bits does each address need?

  1. A trillion is written 1,000,000,000,000.
  2. A trillion has 4 sets of three zeroes.
  3. Multiply 4 by 10, and we get 40 bits.


How accurate are our estimates when we say 1000x ≈ 1024x? Close enough?

It all depends. In 2003, disk drive purchasers sued manufacturers over the earliest gigibyte-sized hard drives because 1,0003 is about 7% less than 1,0243. Traditionally, manufacturers sized RAM in multiples of powers of two, while hard drives were sized in powers of 10. Confusion reigned throughout the industry. Engineers might refer to 216 of storage as either 64K (the closest power of two) or 65K (closer to the decimal value of of 216). Today, disk drive specifications clearly indicate that they represent size in powers of 10.

In this estimate, we round to the nearest thousand already. We also focus on the number size in bits, not the grand total. We are estimating the logarithm of the results, not the totals. For a gigabyte, this is the difference between 29.9 bits and 30 bits. We can ignore it since computer architecture doesn’t deal with fractions of a bit. The error grows with larger numbers, but doesn’t reach an entire bit until 1090.

Decimal and Binary Size Names

If you need to indicate both decimal sizes (1,000x) and binary sizes (1,024x), the International Electrotechnical Commission (IEC) defined alternative names, shown below:

Decimal Abbrev.KMGPTEZY
Decimal Prefixkilo-mega-giga-peta-tera-exa-zetta-yotta-
Binary Abbrev.KiMiGiPiTiEiZiYi
Binary Prefixkibi-mebi-gibi-tebi-pebi-exbi-zebi-yobi-

These prefixes and abbreviations are defined in international standard IEC 80000-13:2008.

A Shorter Table

This table also appears in Elementary Information Security. It should be useful for several years in the future, but storage sizes continue to grow at astonishing rates. Moore’s Law estimates that storage technology doubles every 18 months. If it’s accurate, then if terabyte drives are commonplace, it will take another 15 years for petabyte drives to be commonplace.

Large number abbreviations

Practicing with Quizlet

If you want to memorize these values, there are flash cards and other self-training exercises on the Quizlet page.

The page tests your knowledge of the smaller sizes (K, M, G, T), how these sizes are related (i.e. a terabyte is a thousand billion bytes), and how they relate to memory sizes (a TB needs an address approximately 40 bits long).