When is a Megabyte Not a Megabyte?

Friday October 26 2012 - , , , , ,

gigabyte-tehnology_8d88d4707b5df0The answer is complicated, but in general the simple answer is: whenever someone is trying to sell you something. There is a notable exception that we’ll discuss shortly.

Computer scientists have traditionally adopted a slightly non-standard meaning for the prefixes Kilo-, Mega-, etc. The reason for that is that computers work in binary, and 1024 is equivalent to 210. So where units of computer memory are concerned, computer scientists would use the term ‘Kilobytes’ to mean 210 or 1024 bytes, Kilobits to mean 1024 bits, and so on. A Megabyte is then 220 bytes, or 1024 Kilobytes, or 2 10 Kilobytes. These measurements make a great deal of sense in terms of the electronic circuitry used to wire up memory chips to the CPU, but of course the usage differs from the engineering units of the same name. In most of science and engineering, Kilo means 103 or 1,000 and Mega means 106 or 1,000,000 – each unit increases by 103. Powers of ten are much more natural for humans to work in, whereas powers of 2 are much more natural for computers to work in.

This can lead to confusion. Most notably, hard disk drives are generally sold in S.I. units, so when you buy 1 Gigabyte of disk storage, you are buying 109 bytes or 1,000,000,000 bytes. Had the computer science definition of Gigabyte been used, then you’d be buying 230 bytes, or 1,073,741,824 bytes. Clearly then, a hard-drive Gigabyte is about 73 Megabytes short of a computer science Gigabyte, a difference of just under 7% (6.8677%). Marketers do not miss any tricks, as evidenced by the photo. If one were being cynical, it could be postulated that hard drive marketers hope you will assume the computer science units and think you are buying a 7% larger hard drive than you actually are. Some internet service providers adopt a similar practice when mentioning the speed of their connection (Kbps - Kilobits per second or Mbps - Megabits per second) or indeed quota allowances in their fair use policies.

So when is a Megabyte not a Megabyte? When buying computer memory that connects directly to the computer’s address bus, it is safe to assume that computer science units are being used, because memory chips have to interface to the CPU and they have no choice but to use binary counting. In all other cases, when someone is selling you something it is probably safest to assume the smaller engineering units. If you want to have some fun with your ISP, ask them!

If that’s all been a bit confusing, here is a summary.

Unit Computer Science
Computer Science
Kilobyte (Kb) 210 bytes 1,024 bytes 103 bytes 1,000 bytes
Megabyte (Mb) 220 bytes 1,048,576 bytes 106 bytes 1,000,000 bytes
Gigabyte (Gb) 230 bytes 1,073,741,824 bytes 109 bytes 1,000,000,000 bytes