According to the SI system, a kilo =1000 of any quantity or that’s what we have learnt in school. Honouring this fact, 1 kilobyte = 1000 bytes. But our digital systems work on a binary scale. So according to it 1 kilobyte= 210 = 1024 bytes.
So what exactly is a kilobyte? Is it 1000 bytes? Or is it 1024 bytes?
Well, there is no distinct line bifurcating the two. So, Let’s delve into the details, to understand it better.
The International Electrotechnical Commission (IEC) has recommend the use of SI system i.e. 1 kilobyte=1000 bytes (and related mega=1,000,000, giga=1,000,000,000) for denoting data transfer rates. This convention is used to mention data transfer rates in hard drive, pen drive (flash media), DVDs, computer network, internet speed etc. It is also used to denote the CPU clock speeds and the measure of performance. The unit symbol is kB (note the lowercase ‘k’).
As digital memory has a binary nature, the memory spaces are denoted in the powers of 2. So this definition of kilo (and related mega=1048576 (10242) and giga=1,073,741,824 (10243)) is used for expressing random-access memory capacities, such as main memory and CPU cache sizes. This convention is followed by many Operating Systems to report disk capacity and file sizes. The unit symbol is KB (note the uppercase ‘K’). In informal usage, B if often neglected. Eg. 32768 bytes of cache memory can be expressed as 32K of cache.
This confusion arises because of the fact that 210 = 1024 is approximately equal to 1000. Digital device manufacturers started using kilo for 1024 bytes so that even a nontechnical person can relate to the memory capacity in a much understandable manner.
The confusion for kilobyte still remains but seems to be a little sorted out because of different symbols. But for megabyte and above, both the conventions use the same unit MB, GB, TB and so on. So in 1998, the IEC came up with a different prefix kibi, mebi, gibi to denote powers of 1024. Thus, kibibyte, symbol KiB, represents 210=1024 bytes. But this is seldom used.
The image below shows both the conventions.
In a nutshell, to represent data transfer rates, kB =1000 bytes is used. While representing memory spaces, KB =1024 bytes is used. Though this convention is generally followed, there is no strict adherence to it. Most books and online articles are known to follow this guideline.
Data Transfer Rate
Data transfer rate is the average number of bits (bitrate), characters or symbols (baud rate) passing between devices during data transmission. The units used to express the data transfer rates are in multiples of bits per second (bit/s) or in bytes per second (B/s). Well, the kilobyte confusion was just not enough, and to add to this mess we have bits(b) and bytes(B). But most of us are familiar with it.
NOTE: When talking in terms of bits the unit symbol with a lowercase ‘b’ is used. Eg 20 Mbit/s or 20 Mb/s aka 20 Mbps. Whereas data transfer rate expressed in bytes has the unit symbol with a capital ‘B’. Eg. 20 MB/s aka 20 MBps.
The relation between the speeds is the same as it is between a bit and a byte. 1 byte= 8 bits.
So next time when you internet provider sends you the details of the internet plan he is willing to offer, don’t get deceived by 5 Mbps speed which he claims to give. It is actually 5/8=0.625 MBps or 625 KBps.