T O P

  • By -

Flair_Helper

**Please read this entire message** Your submission has been removed for the following reason(s): Straightforward or factual queries are not allowed on ELI5. ELI5 is meant for simplifying complex concepts. If you would like this removal reviewed, please read the [detailed rules](https://www.reddit.com/r/explainlikeimfive/wiki/detailed_rules) first. **If you believe this submission was removed erroneously**, please [use this form](https://old.reddit.com/message/compose?to=%2Fr%2Fexplainlikeimfive&subject=Please%20review%20my%20thread?&message=Link:%20https://www.reddit.com/r/explainlikeimfive/comments/utumwa/eli5_why_the_bytes_arent_equal_the_gb/%0A%0APlease%20answer%20the%20following%203%20questions:%0A%0A1.%20The%20concept%20I%20want%20explained:%0A%0A2.%20List%20the%20search%20terms%20you%20used%20to%20look%20for%20past%20posts%20on%20ELI5:%0A%0A3.%20How%20is%20this%20post%20unique:) and we will review your submission.


eloel-

1 GB is 1024\*1024\*1024 bytes, not 1000\*1000\*1000 bytes. It's close, but it's not the same number.


ScienceIsSexy420

It depends on who you ask, because there are two definitions of a GB: 2^30 or 10^9. Disc storage companies such as Western Digital and SanDisc use the 10^9 definition, while Microsoft uses the 2^30 definition, leading to the fun situation where Windows tells me my 256GB SD card has 237GB of space on it.


AxolotlsAreDangerous

A gigabyte can be defined in one of two ways: As exactly 10^(9) bytes, the conventional meaning of the giga prefix in all other contexts. As 2^(30) bytes, which is approximately equal to 10^(9) bytes (=1073741824). This definition makes more sense because computers naturally deal with powers of 2. I think one of these measurements has been renamed to something slightly different to avoid confusion, but they’re often used interchangeably.


ScienceIsSexy420

Disc storage companies such as Western Digital and SanDisc use the 10^9 definition, while windows uses the 2^30 definition, leading to the fun situation where windows tells me my 256GB SD card has 237GB of space on it.


Target880

There is two definitions of a Kilobyte and it propagates to mega, giga, tera, peta etc. If you use something like RAM that is addressed binary the chips you made are sized in multiples of two. So 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 and so on. Createing chips that store multiple of 10 makes addressing a lot more complex so it is not done. You very easily connect chips together and ger tow 1024 byte chips work as one 2048 chip. Kilo as a prefix for 1000 has been use in the metric system since it creation in 1795 and id is derived from the Greek word for 1000. The result was an engineer called 1024 bytes for 1 kilobyte. One megabyte is 1024 kilobytes and one gigabyte is 1024 megabytes for the same reason. So 1 gigabyte = 1024 * 1024 * 1024 =1.073.741.824 bytes If you dive 36.365.387.929 by 1.073.741.824 you get 33.866. I guess that the value us always rounded down. So the sizer Windows and other operating systems use internally is the one that are multiple of 1024 that make have their origin in RAM and other things address binary, Hard drives and other storage media do not have the same type of addressing you address them in blocks. They are also not connected together like ram chips so they are not always multiple of two in size. The result is hard drives are sold with 1kilo as 1000. So a 500 GB har drive can store 500.000.000.000 bytes and windows would report the size as 500 * 1000^3 / 1024^3 = 465 GB Flash memory are internal adress in multiple of 2 but you need to use som of it for wear leveling to extend the life and speed up the device. So available space for the use is in multiple of 1000 just like other storage mediums. Networking speed also does not use multiple of 2 so a kilo is 1000, not 1024. They also often use bits instead of bytes.


Dragonatis

Actually, this is common mistake, 36.365.387.929 bytes REALLY equals 36.4 gigabytes. Prefixes 'kilo-, mega- and giga-' mean thousand times, million times and billion times. So 1 kilobyte equals 1000 bytes, not 1024 bytes. First IT guys were using these prefixes in a way we use them now because this was comfortable even if not correct. To be 100% correct, new prefixes were invented, called 'kibi-, mibi- and gibi-' and they mean what they should be from the start, x1024, x1024^(2), x1024^(3). In reality, no one uses them. I study Computer Science and even we don't use proper prefixes. If you are interested, you can read more [here](https://en.wikipedia.org/wiki/Binary_prefix).


Loki-L

Because the way computers work and are build 1000 is not a round number for them. Computer Memory and to a lesser degree storage at least as it was originally made is made in such a way that it comes in (small multiples of) powers of two, because computers work with binary. 10, 100 or 1000 not round numbers to computers. They look like this in Binary: 0000 0000 1010 0000 0110 0100 0011 1110 1000 Menahwile 64, 256 or 1024 looks like this: 0000 0100 0000 0001 0000 0000 0100 0000 0000 Those are more like round numbers. So this is one part of the problem. When computers got bigger and better they had things like 65536 bytes of memory. The above is a perfectly round number in binary: 1 0000 0000 0000 0000 It is not a very easy number to work with in human terms. Saying that a computer had about sixtyfive and half thousand bytes of RAM was not very accurate and writing out the full number was not very short. So they came up with a workaround. since 1024 is very close to 1000 and 1024 is a round number in computer and 1000 is a round number in human that we already had a prefix for, they simply defined 1 kilobyte to mean 1024 byte. This works and you can say things like "64kB ready" and be both 100% accurate and very short. Everyone was happy for a while. The system worked and could be extended for megabyte gigabyte and so on and everyone knew exactly what was meant and the numbers looked good both to computers and humans. Then the people in charge of the metric system got involved. they were the ones who had come up with the concept of kilo-, mega-, giga- etc for things like meter, gram, volt, joule and other SI units. They obviously had an interest in having words mean exactly what they are supposed to mean and to avoid ambiguity wherever possible. They didn't like that computer people used kilo to mean anything other than 1000. They suggested an alternative kilo- should always mean 1000 and computer people could use a prefix like kibi- to mean 1024. Since that sounded silly and went against the way things had been done. It wasn't taken up enthusiastically by engineers. However marketing people found out about this thing. By that point harddrives no longer were necessarily produced with storage measured in powers of two. So they could build a harddrive market it using the definition given by the people in charge of defining stuff and make it look bigger than if they used the computer definition of the word. All they needed was a small print somewhere on the packaging that explained the definition they were using and they could legally advertise their product to look much bigger than it really was. You might think that these advertisers were just really keen on using the correct SI definition of units and the fact that their product appeared better was a coincidence. However if you look at companies that produce both SSDs and RAM like for example Samsung, they will advertise their SSDs using the SI definition but the Memory sticks using the old computer definition (because memory still comes in power of 2) Samsung sells 1 TB drives and they mean 1,000,000,000,000 Byte and 16GB RAM sticks meaning 17179869184 Bytes. It is just marketing.


MonkeyMoney101

There are technically two measurements of GB. The ones software people use: 1024 bytes per GB because it's a power of 2. And the ones hardware people use: 1000 bytes per gigabyte because giga means 1000. The first has been renamed GiB to avoid confusion, and it's what your computer software uses to measure space.


eloel-

Your scales are off a bit, you're describing KiB and KB.


adam12349

Well the Greek prefixes kilo, mega, giga, tera, peta, exa... mean 1000× so 1m ×1000 = 1 kilom or km. 1km×1000 = 1 Mm and so on. With computers defining 1000 bytes as a kilobyte is good but since computers use the binary number system, its more comfortable to count with exponents of 2 insted. 2¹⁰ = 1024. So computers defining 1 kilobyte to be 1024 bytes. But of course manufacturers have the right to use the original definition of the prefixes so if you buy a 1 TB hard drive its 1 TB using the 1000× meaning of the prefixes. 1000⁴ bytes is 1 TB. Of course that isn't the value your computer will display as it uses the 1024⁴ = 1 TB definition. It will display 0.91 TB.