The kilobyte is a multiple of the unit byte for digital information. Although the SI prefixkilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 (2^{10}) bytes or 1000 (10^{3}) bytes, dependent upon context, in the fields of computer science and information technology.^{[1]}^{[2]}^{[3]}
For example, when referring to data transfer rates^{[4]} and to disk storage space,^{[5]} "kilobyte" means 1000 (10^{3}) bytes. On the other hand, random-access memory capacity such as CPU cache measurements are always stated in multiples of 1024 (2^{10}) bytes, due to memory's binary addressing.
In the International System of Quantities, the kilobyte (symbol kB) is 1000 bytes, while the kibibyte (symbol KiB) is 1024 bytes. The binary representation of 1024 bytes typically uses the symbol KB, with an uppercase K. Informally, the B is sometimes dropped, with the leftover K representing 1024 bytes; this variant, however, is not standardized and may be used arbitrarily. All existing recommendations prefer to use the uppercase letter B for byte, because b is used for the bit.
The unit kilobyte is commonly used to indicate either 1000 or 1024 bytes. The value 1024 originated as compromise technical jargon for the byte multiples that needed to be expressed by powers of 2, but lacked a convenient name. As 1024 (2^{10}) approximates 1000 (10^{3}), roughly corresponding SI multiples were used for binary multiples. In 1998 the International Electrotechnical Commission (IEC) enacted standards for binary prefixes, specifying the use of kilobyte to strictly denote 1000 bytes and kibibyte to denote 1024 bytes. By 2007, the IEC Standard had been adopted by the IEEE, EU, and NIST and is now part of the International System of Quantities. Nevertheless, the term kilobyte continues to be widely used with both of the following two meanings:
1 KB (or KiB) = 1024bytes = 2^{10} bytes is the definition used by most vendors of memory devices and software when referring to amounts of computer memory, such as Microsoft Windows and Linux.^{[9]}^{[unreliable source?]} In the unambiguous IEC standard the unit for this amount of information is one kibibyte (KiB).
Examples[edit]
The HP 21MX real-time computer (1974) denoted 196,608 (which is 192×1024) as 196K,^{[10]} while the HP 3000 business computer (1973) denoted 131,072 (which is 128×1024) as 128K.^{[11]}
The Shugart SA-400 5^{1}⁄_{4}-inch floppy disk (1976) held 109,375 bytes unformatted,^{[12]} and was advertised as 110 Kbyte, using the 1000 convention.^{[13]} Likewise, the 8-inch DEC RX01 floppy (1975) held 256,256 bytes formatted, and was advertised as 256k.^{[14]} On the other hand, the Tandon 5^{1}⁄_{4}-inch DD floppy format (1978) held 368,640 (which is 360×1024) bytes, but was advertised as 360 KB, following the 1024 convention.
On modern systems, Microsoft Windows 7 would divide by 1024 and represent a 65,536-byte file as 64 KB.^{[15]} while Mac OS X Snow Leopard represents this as 66 KB, rounding to the nearest 1000.^{[16]}
In December 1998, the IEC addressed such multiple usages and definitions by creating unique binary prefixes to denote multiples of 1024, such as “kibibyte (KiB)”, which represents 2^{10}, or 1024, bytes.^{[17]}
^Sharma, Kapil; Mohammed J.; Norton, Peter C. Norton; Good, Nathan; Steidler-Dennison, Tony (2005). Professional Red Hat Enterprise Linux 3. John Wiley & Sons. p. 134. "Disk manufacturers sell you their disks saying that a kilobyte is 1,000 bytes, that a megabyte is a thousand of those, and that a gigabyte is another thousand of those, giving you 1,000,000,000 bytes to a gigabyte when you buy a disk. The rest of the computer world, including the programmers who write Linux, thinks of a kilobyte as 1,024 bytes (2^10 bytes), a megabyte as 1,048,576 bytes (2^20), and a gigabyte as 1,073,741,824 bytes (2^30), which means that you're buying just a bit less than you might think."