FallowEarth Posted April 21, 2006 CID Share Posted April 21, 2006 Since there has been some controversy in the past over the accuracy of the conversion of speeds on this site, I thought I would take the initiative to end the discussion once and for all. UNDERSTANDING BINARY[/html] First of all, an explanation of the binary system is required. The binary numeral system, known as Base2, uses 2 symbols: 0 and 1. Binary uses a Boolean system of logic, meaning that there is only positive or negative values. 0 indicates a negative, 1 a positive. Binary is a positional notation, which means that the value of each position is equal to the base to the exponent of the position number (eg. 2^x where x is the position number). [html] Bit Position 7 6 5 4 3 2 1 0 1 1 1 1 1 1 1 1 Decimal Value 128 64 32 16 8 4 2 1 Here are some common values: DECIMAL BINARY 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 10 1010 16 10000 32 100000 64 1000000 100 1100100 256 100000000 512 1000000000 1000 1111110100 1024 10000000000 [/html] A byte is a unit which contains 8 bits. This is known as an octet. The maximum decimal value of a byte is 255 (the bit value would be "11111111"). [html] INTERNATIONAL SYSTEM OF UNITS (SI) The next thing we need to understand is what is called International System of Units (SI) Notation: Prefix Symbol Magnitude Meaning (multiply by) Yotta- Y 10E24 1 000 000 000 000 000 000 000 000 Zetta- Z 10E21 1 000 000 000 000 000 000 000 Exa- E 10E18 1 000 000 000 000 000 000 Petta- P 10E15 1 000 000 000 000 000 Tera- T 10E12 1 000 000 000 000 Giga- G 10E9 1 000 000 Mega- M 10E6 1 000 000 kilo- k 10E3 1000 hecto- h 10E2 100 deka- da 10 10 - - - - deci- d 10E-1 0.1 centi- c 10E-2 0.01 milli- m 10E-3 0.001 micro- u (mu) 10E-6 0.000 001 nano- n 10E-9 0.000 000 001 pico- p 10E-12 0.000 000 000 001 femto- f 10E-15 0.000 000 000 000 001 atto- a 10E-18 0.000 000 000 000 000 001 zepto- z 10E-21 0.000 000 000 000 000 000 001 yocto- y 10E-24 0.000 000 000 000 000 000 000 001 [/html] This is the standard for prefixing values. For example, rather than using a value of 5000 metres, you would use 5 kilometres. Rather than saying you have .007 litres of water, you would say that you have 7 millilitres of water. When dealing with massive numbers of bits and bytes in computer science, it was logical that a standard of prefixing would be required in order to efficiently address values. Since the SI notation was already widely in use, it made sense to adopt the use of the same names. However, the SI notation was designed for use with the Base10 (decimal) numeral system. As you can see above, they are based on multipliers of 10, or one place value of the decimal system. In Base2, the 10th place value is used to escalate to the next prefix: [html] Position Value Prefix 10 1024 kilo (k) 20 1048576 Mega (M) 30 1073741824 Giga (G) 1,024 Byte 1 Kilobyte (KB) 1,024 Kilobyte (KB) 1 Megabyte (MB) 1,073,741,824 Bytes 1 Gigabyte (GB) 1 Gigabyte (GB) 1,024 Megabyte (MB) The conversion is not exactly 1000, but 1024. This has been standardized to units that apply to filesize, such as bytes. CONVERSION[/html] here's the catch: the SI notation prefixes usually retain their Base10 (10^x) meanings when used to describe rates of data communication (bit-rates): e.g. "10 Mbps Ethernet" runs at 10,000,000 (10 million) bits per second, not 10,485,760 bits per second. [size=8pt]From wikipedia.org (http://en.wikipedia.org/wiki/Kilobits_per_second):[/size] "A kilobit per second (kbps or kbit/s) is a unit of data transfer rate equal to 1,000 bits per second. It is sometimes defined to mean 1,024 bits per second, by extension from the conventional definition of kilobyte, though this is rare and non-standard." To convert from bytes to bits, you must multiply the total number of Bytes by 8. But to get KB/s values from bit rates, you must divide the total number of bits by 8, then divide by 1,024. [b]kilobytes per second >> kilobits per second is:[/b] [html] KiloBytes * 1,024 = total Bytes total Bytes * 8 =  bits bits / 1,000 = kilobits kilobits per second >> kilobytes per second: kilobits per second * 1,000 = total bits per second bits / 8 = total Bytes per second / 1,024 = kiloBytes per second [/html] [color=red][b]The bottom line is that the conversion here on this site is correct.[/b][/color] <hr> [html] SIDE NOTE The International Electrotechnical Commission (IEC) proposed a new set of "binary prefixes" to settle the confusion between Base10 and Base2 prefixes. The solution was KiB (kibibyte) and MiB (mibibyte), where the value would be 1 KiB = 1024 bytes. This would allow Kilobyte to retain its Base10 value of 1000 bytes. Years later, this standardization has not been publically adopted. People continue to use KB to mean 1024 bytes, even though they know that the proper SI meaning for kilo is 1000. The concern over switching to the kibi is that if anyone is reading through historical documentation, they would not know if KB was meaning 1000 or 1024. So it stands: KB = 1024 Bytes kbit = 1000 bits Link to comment Share on other sites More sharing options...
Recommended Posts