I START this article with a couple of confessions.
1. I am a computer nerd who wrote his first program in 1973 and I have worked in the Information Technology industry since I left college in 1980.
2. On my Belbin Team Profile one of my top three strongest characteristics is Completer Finisher (painstaking. conscientious, anxious, searches out errors & omissions, delivers on time, inclined to worry unduly, reluctant to delegate). FYI – the others in the top three are Shaper and Implementer.
It is the attention to detail aspect of my profile that has made me write this article.
It bugs me when people don’t understand the difference between bits and bytes. It is even worse when it is Telefonica sales people who are trying to sell me a faster megabyte per second broadband service. This is because the service is actually measured in megabits per second.
So here is some information about bits, bytes and binary.
We start with a description of the decimal counting system. Decimal means it is a number system based on 10s. This is the one we all know and love (1, 10, 100, 1000 etc.).
Each digit in the overall number can take on any value between 0 and 9. The rightmost digit is a count between 0 & 9. The second digit from the right is the number of 10s, the third digit from the right is the number of 100s (10 x 10s). The fourth digits from the right is the number of 1000s (10 x 10 x 10s) etc. So for example, 1234 represents 4 + (3×10) + (2×100) + (1×1000) = one thousand two hundred and thirty four.
So 1010 = 0 + (1×10) + (0x100) + (1×1000) = one thousand and ten in the decimal system.
Computers and the binary system
In the early days of computing it was easy for electronics to implement a switch that could be switched on or off. This represented two values, off = 0 and on = 1. This led to the binary counting system being used in computing. Binary means that it is a number system based on 2s.
Each digit in the overall binary number can take on a value of 0 or 1. The rightmost digit is a count between 0 & 1. The second digit from the right is the number of 2s, the third digit from the right is the number of 4s (2 x 2s). The fourth digits from the right is the number of 8s (2 x 2 x 2s) etc.
So using the same example as above 1010 = 0 + (1×2) + (0x4) + (1×8) which in the decimal system is the number ten.
Bits and bytes
A bit is a single binary digit that can represent 0 or 1.
A byte is 8 binary digits working together to represent a number that can take a value between 0 and 255 in the decimal system.
The smallest value of a byte is 00000000 = 0 + (0x2) + (0x4) + (0x8) + (0x16) + (0x32) + (0x64) + (0x128) which in decimal is 0.
The largest value of a byte is 11111111 = 1 + (1×2) + (1×4) + (1×8) + (1×16) + (1×32) + (1×64) + (1×128) which in decimal is 255.
I won’t bother to explain how negative numbers are represented in binary as that would be an unnecessary further complication.
So a bit is one digit in the binary system and a byte is 8 digits in the binary system combined together to represent an unsigned number that can take on a value between 0 and 255 in the decimal system.
Transmitting or storing bits and bytes
So in terms of transmitting or storing bits and bytes it takes 8 times as much memory to store a byte compared to a bit. Also, on a communications line at a fixed speed it would take 8 times as long to transmit a byte compared to a bit.
Typical use of the terms bits and bytes
In the computing industry people have adopted the standard that the speed of transmission of data tends to be measured in bits.
However, when storing data the convention adopted is to measure in bytes (8 times as much as bits).
Kilo, mega, giga and terra
The terms kilo, mega, giga and terra are associated with the decimal system. You probably all know that a kilogram is 1000 grams. A megagram would be 1000000 (1 million) grams, a gigagram would be 1000000000 grams and a terragram would be 1000000000000 grams.
Kilo, mega, giga and terra in the computer industry
The computer industry adopted the terms kilo, mega, giga and terra from the decimal system.
However, as mentioned above the computer industry uses the binary number system. In binary there is no neat way of representing 1000 decimal. The closest you can get is a 10 digit binary number that can represent 1024 different decimal values. This is the range of decimal numbers between 0 (0000000000 binary) and 1023 (1111111111 binary).
So in the computing industry kilo = 1024, mega = 1024 x 1024 (1048576 decimal), giga = 1024 x 1024 x 1204 (1073741824 decimal). Note the difference between a kilogram (1000 grams) and a kilobyte (1024 bytes).
So how does this affect you?
When you purchase broadband or use dial-up you buy a service measuring the maximum theoretical rate at which bits of data can be sent to you. So the typical maximum speed of line you can get using dial up is 64 kilobits per second (64×1024 = 65536 bits per second in decimal). These days Telefonica provide a broadband service between 1 & 8 megabits per second in remote parts of Spain (between 1073741824 and 8589934592 bits per second in decimal).
So if someone tries to sell you a 1 megabyte per second broadband service they are normally taking rubbish as in fact the service is 1 megabit per second (8 times slower than they are saying).
When you purchase a memory stick it is normally measured in megabytes or gigabytes where a megabyte is 1048576 bytes (a little more than a million in decimal) and a gigabyte is 1073741824 bytes (1024 times more than a megabyte).
The final example is the Vodafone pay as you go usb modem that I have installed for a number of people. The maximum speed of the link over the mobile phone network is claimed to be 7.2 megabits per second. But the download usage capacity that you buy is in megabytes or gigabytes (250 megabytes, 400 megabytes or 1 gigabyte (1024 megabytes).