Years ago, engineers noticed that 2^{10} was close to 1000 and started to use the prefix "kilo" meaning 1024 instead of 1000.
Ordinary people know that a kilometer is 1000 meters and a kilogram is 1000 grams.

That worked because everybody knew that the kilobytes term implied 1024 bytes.
Binary arithmetic is less convenient than decimal arithmetic and here is the source of confusions.
The result is that today you don't know what a megabyte is.

Memory manufacturers use megabyte as 2^{20} bytes (1.048.576 bytes).
Megabyte means 1.000.000 bytes for the manufacturers of computer storage devices.
Now you know why your hard-disk has less space than you expected.
Local area networks have used megabit per second to mean 1.048.576 bit/s
while all telecommunications engineers know that a megabit means 1.000.000 bit/s.
To make the confusion greater, a megabyte is 1.024.000 bytes for some (3 1/2 inch) "1.44 MB" diskettes.

The International Electrotechnical Commission (IEC) approved a set of prefixes for binary multiples for use in the fields of data processing and data transmission.
The new prefixes for binary multiples are not part of the International System of Units (SI). The IEEE Standards Board decided that IEEE standards will use the conventional, internationally adopted, definitions of the SI prefixes. Mega will mean 1.000.000, except that the base-two definition may be used (if such usage is explicitly pointed out on a case-by-case basis) until such time that prefixes for binary multiples are adopted by an appropriate standards body.

Comparison with SI prefixes

one byte 1 B = 8 bit

one kibibit 1 Kibit = 2^{10} bit = 1.024 bit
one kilobit 1 kbit = 10^{3} bit = 1.000 bit

one mebibyte 1 MiB = 2^{20} B = 1.048.576 B
one megabyte 1 MB = 10^{6} B = 1.000.000 B

one gibibyte 1 GiB = 2^{30} B = 1.073.741.824 B
one gigabyte 1 GB = 10^{9} B = 1.000.000.000 B

You know now what a MiB or GiB is. I doubt you can be sure what MB or GB means.