A common misunderstanding is the difference between Megabits (Mb) and Megabytes (MB). There are 8 Mb in one MB. Internet connection speeds are usually measured in Megabits per second (Mb/s) but file sizes are usually measured in Megabytes (MB). It is often believed that, for example, an internet or network connection speed of 10Mb/s could theoretically download a 10MB file in 1 second - however this is inaccurate. At full speed, this would take at least 8 seconds. You can check this using the Download Calculator

It is important to understand that download times are entirely theoretical and represent the maximum theoretical speed achievable. When downloading a file, a number of factors can influence the download speed. This can include but is not limited to:

- Your actual connection speed. For example, ADSL2+ is often advertised as "up to 24Mb/s" however this is largely dependant on the quality and distance from the connected telephone exchange. ADSL2+ usually delivers a connection speed between 8Mb/s and 18Mb/s
- The speed of the server being downloaded from and the speed of its connection to the internet
- Network congestion and contention. For example, if you or someone else working on the same internet connection as you is downloading, this will consume the available bandwidth
- Unstable or high latency connections
- Technical limitations of TCP/IP (the network protocols used for the internet and most computer networks) means that you will never download a file at the full speed available. The use of a download accelerator (when downloading from a compatible server) can assist by establishing multiple TCP connections to the server simultaneously

Although a Kilobyte is commonly referred to as 1024 bytes, this does not match the standard convention defined by the International System of Units (SI) - which says that 'kilo' should be 1000 (as in kilogram = 1000 grams, kilometer = 1000 meters, etc).

However computers work with numbers a little bit (no pun intended) differently. Humans usually work with numbers in base 10 (or decimal) - that is we recognise 10 digits (0 - 9). Computers are built on the concept of "Off/On". Because there are only these two states, they can't understand base 10 logic. Rather, they operate in base 2 (binary - 0 and 1, represented as Off and On). To use the digit 2, a computer uses the number 10. 3 would be 11, 4 is 100, and so on.

As such, computer scientists traditionally used the base 2 approach to calculate file sizes. Thus 2^10 = 1024, being the closest power of 2 to 1000. This led to much confusion around whether a kilobyte should equal 1000 or 1024 bytes, and generally this varied among hardware manufacturers and software companies.

In 1999, the International Electrotechnical Commission (IEC) decided to correct the convention used, and as such introduced the kibibyte (mebibyte, gibibyte, etc.) to represent 1024 bytes. At the same time, they defined the kilobyte as 1000 bytes. Although this move was intended to remove the confusion, some say this has only generated more confusion. Of those who were not already using the standard defined by the IEC, some have switched to the standard while others haven't. Apple madd the change in 2009 with the release of its OS X Snow Leopard operating system. Linux and Microsoft Windows however have not changed from the old convention and continue to refer to a kilobyte as 1024 bytes.

Most hardware manufacturers use decimal based prefixes. This is why there is often a discrepancy between advertised memory / storage capacities and that reported inside Windows. For example, a 1000GB (1TB) hard disk will display in Windows as 931GB. The actual capacity of the disk is close to 1,000,000,000,000 bytes.

Example: 1 Gigabyte as displayed in Windows

1,000,000,000,000 / 1024 / 1024 / 1024 = 931

Most network providers advertise their products or services with decimal prefixes. Additionally, network speeds are normally reported in bits per second (b/s). So if you are working within Windows, calculating the time to download a file can be tricky!

The best way to calculate download times is to convert all units of measurement to their base (e.g. convert filesize of x GB to Bytes and convert download speed from x Mb/s to b/s).

Example: Convert 200 Gigabytes to Bytes

200 x 1024 x 1024 x 1024 = 214748364800

Example: Convert 15 Megabits per second to bits per second

15 x 1000 x 1000 = 15000000

We then convert the Bytes to bits.

Example: Convert 214748364800 Bytes to bits

214748364800 x 8 = 1717986918400

Our formula then looks like this:

Example: Formula to calculate X (seconds)

bits / seconds = bits per second

1717986918400 / X = 15000000

X = 114532.4 seconds

1717986918400 / X = 15000000

X = 114532.4 seconds

We then convert our result in seconds to something humanly readible (minutes, hours, days, etc).

Example: Convert 114532.4 seconds to days

114532.4 / 60 / 60 / 24 = 1.33 days (32 hours)

As you can see, while not particularly complex, there are a quite a number of steps in completing this formula. The full formula is below.

Example: The full formula

( (200 x 1024 x 1024 x 1024 x 8) / (15 x 1000 x 1000) ) / 60 / 60 / 24 = 1.33

Download Calculator is designed to save time and improve accuracy when calculating these formulas.