Jump to content
Sign in to follow this  
FallowEarth

Speed Conversion Defined

Recommended Posts

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

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...