Computer Terminology

# Why is 1 KB commonly said to be 1024 bytes instead of 1000 bytes?

757677 ###### 2012-09-07 14:34:11

A kilobyte is actually 1000 bytes. "kilo-" is an SI prefix meaning "1000".

• 1 km = 1000 meters
• 1 kg = 1000 grams
• 1 kB = 1000 bytes

When dealing with computer memory, the addresses for each memory location are typically binary numbers, which means the total number of addresses is a power of 2. It makes the most sense to use all of these positions, so the total capacity of a memory will typically be a power of two.

Since 210 is equal to 1,024, it is often approximated as "1 kilobyte" in speech, but this is just a shorthand, not a real definition.

RAM manufacturers treat this as a literal meaning instead of an approximation, though, and extend this to higher powers, which conflicts with the way units are used elsewhere. So a "1 GB" RAM IC has 230 = 1,073,741,824 bytes instead of 1,000,000,000 bytes, a 7% error. On the other hand, a 1 GB Flash memory actually doeshave around 1,000,000,000 bytes, as you would expect.

"kB" or "KB" can mean either 1024 bytes or 1000 bytes, depending on who you ask. Both meanings have been in use since the early days of computing, confusing users ever since.

kilo- means 1000, and has for centuries, so where did 1024 come from? The answer is binary addressing.

Your basic transistor, the foundation for all things computer, has 2 states (on/off), which is known as binary. So modern computers of all types use the binary numbering system (0/1 = off/on).

Memory addresses in computers are a number of bits wide. For instance, the old 6502 microprocessor had memory addresses 16 bits 'wide'.

With 10 bits, for instance, a computer can address 210 memory locations, which is 1024. With 16 bits, a computer can address 216 memory locations. So the number of memory locations is always a power of two. It wouldn't make much sense to make memory chips that don't use all of the addressable locations, so all memory is in powers of two. (This doesn't apply to other computer components, however. Hard drives, disk drives, DVDs, and other media, clock speeds and data rates and networking speeds are all measured in powers of 10.)

But 1024 is 210 (2 to the 10th power), conveniently close to 103 (1000). In computers, base-2 shows up over and over again. It's easier to approximate and say "1k" instead of 1024. 1 kilo is normally 1000, as per the metric system's prefixes.

In this case, the next higher size of memory chips was often 2x or 4x the previous size. This pulled folks away from the normal base-10 thinking toward base-2 thinking ... and we ended up with something that sounds like it is based on powers of 10, but is really based on powers of 2.

Officially, 1000 is the only valid meaning, and "k" was used by engineers for 1024 just as an approximation. (2048 bytes isequal to 2.0 kB, after all.) Over time, this approximation became used by marketing types as if it was actually defined as1024, rather than just being used as an approximation.

In 1968, for instance, Donald Morrison talked about how it was confusing to tell laymen that doubling a 32K memory produced a 65K memory. He proposed to end the confusion by using the Greek letter κ (kappa) to mean 1024, but this never stuck. Instead, people started using capital K to mean 1024, which further increased confusion instead of helping.

Nowadays however, there is a new prefix to be used for the non-standard meaning:

• 1 kibibyte (KiB) is 1024 bytes
• 1 kilobyte (kB) is 1000 bytes

So too for the old megabyte which was 220 bytes:

• 1 mebibyte (MiB) is 1,048,576 bytes
• 1 megabyte (MB) is 1,000,000 bytes.

Higher units like terabyte have always been used with the 1000x meaning except in rare cases.

## Related Questions The official prefixes only go as high as 1024 or 280 bytes.1000 MultiplesBit = 1 Binary DigitByte = 8 BitKilobyte = 103 bytes = 1000 bytesMegabyte = 106 bytes = 1000 kilobytesGigabyte = 109 bytes = 1000 megabytesTerabyte = 1012 bytesPetabyte = 1015 bytesExabyte = 1018 bytesZettabyte = 1021 bytesYottabyte = 1024 bytes1024 MultiplesFor sequential numbers based on 1024 (210) instead of 1000 :Bit = 1 Binary DigitByte = 8 BitKibibyte (kilo-binary-bytes) = 210 byte = 1024 bytesMegabyte = 220 bytes = 1024 kibibytesGibibyte = 230 bytes = 1024 mebibytesTebibyte = 240 bytesPebibyte = 250 bytesExbibyte = 260 bytesZebibyte = 270 bytesYobibyte = 280 bytes Kilo means 1000. A kilobyte is 1000 bytes...or more accurately, because bytes are counted in the binary system, that would be 1024 bytes (210=1024). 1000 terabytes is a petabyte.There are competing scales, increased by 1000 or 1024 (binary, 210). A terabyte is a trillion (short scale) bytes, 1012 bytes, or 1000 gigabytes, and the four larger official prefixes are:Petabyte = 1015 bytesExabyte = 1018 bytesZettabyte = 1021 bytesYottabyte = 1024 bytesFor values based on 1024 rather than 1000:Tebibyte = 240 bytes = 1024 gibibytes (giga-binary-bytes)Pebibyte = 250 bytesExbibyte = 260 bytesZebibyte = 270 bytesYobibyte = 280 bytes 1 kilobyte = 1024^1 = 1,024 bytes1 megabyte = 1024^2 = 1,048,576 bytes1 gigabyte = 1024^3 = 1,073,741,824 bytes1 terabyte = 1024^4 = 1,099,511,627,776 bytes1 petabyte = 1024^5 = 1,125,899,906,842,624 bytes1 exabyte = 1024^6 = 1,152,921,504,606,846,976 bytes1 zettabyte = 1024^7 = 1,180,591,620,717,411,303,424 bytesSo there are 1024^7 / 1024^3 gigabytes in a zettabyte.1024^7 / 1024^3 = 1024^4 = 1,099,511,627,776 gigabytes in a zettabyte..!If you are using the purist SI units meaning of "giga-" and "zetta-" then this would be:1000^7 / 1000^3 = 1000^4 = 1,000,000,000,000 well there are 1000 bytes in a kilobyte. 1000 kilobytes in a megabyte. and 1000 megabytes in a kilobyte. therefore i would say 3500000000 bytes = 3.5 GB actually, there are 1024 bytes in a kilobyte 1024 kilobytes in a megabyte and 1024 megabytes in a gigabyte therefore 3.5 GB is exactly 3,758,096,384 bytes In general, the prefixes and their corresponding quantities are kilo = 1000 Mega = 1,000,000 = 1000 x 1000 Giga = 1,000,000,000 = 1000x 1000 x 1000 In computer terminology, however, rather that being powers of 10, the prefixes are mapped to powers of 2 which come closest to those powers of 10 1 kilobyte = 1024 bytes ≈ 1000 1 Megabyte = 1024 x 1024 = 1024 kilobytes = 1,048,576 bytes ≈ 1,000,000 1 Gigabytes = 1024 x 1024 x 1024 = 1024 Megabytes = 1,073,741,824 bytes ≈ 1,000,000,000 1024 is the closest number to 1000 you can reach in the binary system of counting. Hard drive manufacturers use decimal counting to rate there drives which is why you don't get exactly 100GB out of a 100GB hard drive. A terabyte is a trillion (short scale) bytes, 1012 bytes, or 1000 gigabytes.The four larger official prefixes are:petabyte = 1015 bytes = 1000 terabytesexabyte = 1018 byteszettabyte = 1021 bytesyottabyte = 1024 bytesFor values based on 1024 rather than 1000:tebibyte = 240 bytes = 1024 gibibytes (giga-binary-bytes)pebibyte = 250 bytesexbibyte = 260 byteszebibyte = 270 bytesyobibyte = 280 bytes In metric, mega = 1000 kilo = 1000 * 1000 = 1,000,000.BUT!In computing everything is relative to bytes (each 8 bits), and thus powers of 2 (due to binary), so:1 megabyte = 1024 kilobytes = 1024 * 1024 bytes = 1,048,576 bytes.This is the value of one megabyte, so if we multiply it by 3, we get 3,145,728 bytes. There are officially 1000 bytes in a kilobyte, while memory manufacturers will use 1024 bytes in a kilobyte (also called a "kilobinary byte"). None. There are 1,000 bytes in a kilobyte. 1024 bytes 1024 bytes is a kilobyte. Kilo is the prefix for one thousand (1000), although means 1024 in this case as it is the closest number that is a power of 2. The reason a kilobyte is truly 1024 bytes instead of 1000 bytes is because the nature of computer data. Data is measured in factors of 8 instead of the normal numbering system which is based on a factor of 10. A byte is made up of 8 bits. Therefore it was decided that instead of being 1000bytes it is 1024 which can be factored by 8. The official SI prefixes for multiples have been altered to apply to bytes, where computers have used increments of 1024 (210) rather than 1000 as other metric uses do. The amended names are as follows: Bit = 1 binary digit Byte = 8 bits Kibibyte = 1024 bytes Mebibyte = 1024 kibibytes = 220 bytes or 1048576 bytes Gibibyte = 1024 mebibytes = 230 bytes Tebibyte = 1024 gibibytes = 240 bytes Pebibyte = 1024 tebibytes = 250 bytes Exbibyte = 1024 pebibytes = 260 bytes Zebibyte = 1024 exbibytes = 270 bytes Yobibyte = 1024 zebibytes = 280 bytes (Unofficially, the term "brontobibyte" is 1024 yottabytes or 290 bytes) * see related link A kilobyte is 1/1024 of a megabyte. A megabyte is roughly 1000 kilobytes. A kilobyte is 1024 bytes. A megabyte is 1024 kilobytes, in other word a megabyte is 1,048,576 bytes. There are two different definitions for Mbyte and Gbyte First definition, which uses a non-standard definition of the prefixes K, M, G 1 kbyte = 1,024 bytes 1 Mbyte = 1024 * 1024 bytes = 1048576 bytes = 1,024 Kbytes 1 Gbyte = 1024 * 1024 * 1024 bytes = 1,073,741,824 bytes = 1048576 Kbytes = 1,024 Mbytes the second definition uses the standard definitions of the prefixes. 1 kbyte = 1000 bytes 1 Mbyte = 1000000 bytes = 1000 kbytes 1 Gbyte = 1000000000 bytes = 1000000 Mbytes = 1000 Mbytes Now to your question, NO.

###### Computer TerminologyMath and ArithmeticComputersComputer ProgrammingComputer MemoryComputer HardwareUnits of Measure Copyright © 2020 Multiply Media, LLC. All Rights Reserved. The material on this site can not be reproduced, distributed, transmitted, cached or otherwise used, except with prior written permission of Multiply.