For a number of years there has been confusion between metric and binary prefixes in computers. This confusion has resulted in several lawsuits as the significance of the confusion increases as storage size increases.
In the metric system, the K stands for Kilo or 1000. In binary systems, K was initially used to refer to 1024. Similarly, in metric the M stood for Mega or 1,000,000 - while in binary systems, M stood for 1,048,576. As you can see, the difference becomes more significant as the storage or speed increases. This fundamental difference has confused a lot of people.
To alleviate the confusion and disambiguate the terms, the International System of Quantities established new prefixes, but adoption in in the industry and marketing literature has been slow.
The difference is the addition of an "i" to indicate binary. With this in mind:
Hard drive sizes have typically been measured in metric - a 500GB hard drive can store 500,000,000,000 Bytes (not 536,870,912,000 Bytes) - without understanding this difference, that might be 36GB less than you had expected!
RAM is measured in binary (USB and flash are often treated like hard drives) - so 4GB of RAM should actually be written as 4GiB to indicate it's true storage (4,294,967,296 Bytes).
Network speeds are typically measured in metric - so 100Mb is actually 100,000,000 bits. Keep in mind, that a bit is a 1 or a 0 - a byte (or octet) is 8 bits. Keep in mind that while network speeds are actually measured in bits per second, data transferred is normally measured in bytes. See our KB here.
Adoption of the new prefixes is slow, so you can expect the mis-use of abbreviations to continue for some time. For more information on this topic you could start looking at the International System of Quantities (https://en.wikipedia.org/wiki/International_System_of_Quantities) or the GibiByte (https://en.wikipedia.org/wiki/Gibibyte).