Comments

You must log in or register to comment.

nrron t1_iy8q17a wrote

Because of binary. All data storage sizes tend to be powers of 2 because of the binary nature of computing and storage. They are doubling because they’re the next power of 2

17

AngryTaco4 t1_iy8qeaj wrote

Bits and bytes are exponential starting with 1. It's the same reason that ram modules generally follow the same pattern. It's also the reason that 1kB is actually 1024 bytes and not 1000.

There are some instances where it isn't followed but it's just easier that way.

0

daniuwur t1_iy8qron wrote

Those usb sticks are built by grouping memory chips on a pcb.

Imagine how hard the logistics would be if instead of a standard 6 pack beer we had 7 packs, 5 packs, 11 packs, 13 packs

In thus case a 6 pack is a memory module of 8gb, if you ask the manufacturer to build a 42.069 gb usb they will say "i can do either 32 or 64, im not going to design and manufacture a special design just for you (i can do it, but it will cost you more than making a 64 gb version)"

Edited because 40 is a multiple of 8 lmao

15

AlchemicalDuckk t1_iy8su86 wrote

It really depends on context and usage, at least historically. The prefix could mean decimal (e.g., 1 kilobyte = 1000 bytes) or binary (1 kilobyte = 1024 bytes). You commonly would have seen the former on things like hard drive sizes and network speeds. So for instance, a 1 gigabyte hard drive would really be 1,000,000,000 bytes.

The IEC defined a new set of prefixes to get around the ambiguity. For instance, the kibi- prefix means 2^10, so a kibibyte is 1024 bytes.

3

thejml2000 t1_iy8t701 wrote

For others here (from): > In December 1998, the IEC addressed such multiple usages and definitions by creating prefixes such as kibi, mebi, gibi, etc., to unambiguously denote powers of 1024.[10] Thus the kibibyte, symbol KiB, represents 2^10 bytes = 1024 bytes. These prefixes are now part of the IEC 80000-13 standard. The IEC further specified that the kilobyte should only be used to refer to 1000 bytes. The International System of Units restricts the use of the SI prefixes strictly to powers of 10.

Also: The ISO/IEC 80000 family of standards was completed with the publication of Part 1 in November 2009.

For us old timers (and a lot of documentation), KiB is still new. Indeed, KB is still said used to reference 1024 bases instead of kB which is 1000… and that’s why that IEC 80000-13 was published, to clear up that confusion and add KiB as a documented and remove ambiguity. It didn’t matter so much with low amounts, (64000 vs 65536 bytes for instance) but now that it’s used for petabytes, it’s kind of a big difference.

9

Tomi97_origin t1_iy8v9zb wrote

Because 2^3 = 8, 2^4 = 16, 2^5 = 32,...

Computers work with only 2 values 1 and 0 called bits.

You can imagine the chips storing these as apartments. Each door in the apartment must have a number (address).

2^x tells us the maximum number of doors with x being the number of bits needed to write the address for the door.

If you want to write 20 you will find that 2^4 (16) is not enough and you need 2^5, but at that point you might as well use all 32 addresses.

2

bitchface-hatchling t1_iy8w4tt wrote

This is correct I feel.

However, colloquially, GB is expanded to Gigabytes and hence would mean 1024 Kilobytes. There is also a difference between how the manufacturers build storage and how it is sold. The manufacturers still build storage in multiples of 1000s. So a 1 GB drive would have 1000 MBs, each of which would have 1000 KBs, each of which would have 1000 bytes. But the calculated capacity is then based on binary notations; (110001000*1000)/1024/1024/1024. You would have noticed this. A 1 GB storage drive only comes with ~953 MB of storage.

At least this is what I remember from my CS class.

3

dimonium_anonimo t1_iy8wpb9 wrote

Every storage location needs an address, just like a house needs an address. In order to access that byte of info, you need to basically plug in the correct address. Of course, like all computers, they deal with electricity which is either on or off. We represent that with 1 or 0 respectively.

So let's say you've got a 2-bit address. The first bit has 2 options, and the second bit also has 2 options, so there are 2*2=4 addresses possible. Those are as follows:

00 - 01 - 10 - 11

If I increase the number of bits in the address by 1, to 3 bits, the first two bits can be any of those 4 while the new bit is 0, then repeat the same 4 options while the new bit is 1. So you double the number of locations that can be addressed for each bit you add:

(0)00 - (0)01 - (0)10 - (0)11

(1)00 - (1)01 - (1)10 - (1)11

If I clean that up a bit it looks like this:

000 - 001 - 010 - 011 - 100 - 101 - 110 - 111

8 options for 3 bits. 16 options for 4 bits. And so on... There's one other thing going on here. There are two prefixes that can be used for data. The normal metric prefixes (kilo-, mega-, giga-...) Are supposed to mean 1000 of the previous. A kilometer is 1000 meters. A megajoule is 1000 kilojoules. In data, they added a separate set of prefixes (kibi-, mebi-, gibi-...) Which are actually an even power of 2 multiple instead of 1000. It works out fairly well because 2¹⁰=1024 which is pretty close to 1000. So a kibibyte is fairly close to a kilobyte. And a megabyte is pretty close to a mebibyte.

I think what happened is that the common community of computer consumers didn't take to the new prefixes because it's a bit confusing to have two separate sets that mean different things. And it's not like you ever need to convert between kilobytes and megajoules so why not just use the regular prefixes anyway. So now everything is called kilobytes or megabytes when in reality, they actually mean kibibyte and mebibytes.

1

pseudopad t1_iy8x7vq wrote

Not really a complete explanation. It's not impossible to make a 20 GB USB drive, you just need to use a 16 GB chip combined with a 4 GB chip in the same USB drive.

However, this adds complexity to the circuit board, and it's easier to just buy 100000 32GB chips and make 100k USB drives from that, than it is to buy 50k 16GB chips and 50k 4GB chips and put these two chips on the same board for 20 GB. You'd also get better discounts from the chip manufacturers by buying 100k of a single chip than half as many of two different chips.

The chip cost is also just a portion of the total cost of the drive. You still need the same number of USB plugs, and with two chips, the plastic casing needs to be bigger, which also costs more money. Then it also needs to be packaged in some way to make it to stores, and because the unit in total is bigger with two chips, it'll weigh more and take up more space, which makes shipping more expensive.

So even if you're saving 25% of the chip costs by buying one 16 and one 4 gb chip, that's perhaps just 50 cents less on a unit that is gonna sell for let's say 20. Now the customer is faced with a choice of 32 GB for 20 bucks, or 20 for 19.50.

5

frustrated_staff t1_iy8yud5 wrote

>n December 1998, the IEC addressed such multiple usages and definitions by creating prefixes such as kibi, mebi, gibi, etc., to unambiguously denote powers of 1024.[10] Thus the kibibyte, symbol KiB, represents 210 bytes = 1024 bytes. These prefixes are now part of the IEC 80000-13 standard. The IEC further specified that the kilobyte should only be used to refer to 1000 bytes. The International System of Units restricts the use of the SI prefixes strictly to powers of 10.

For us old timers, this is about as useful as the IAU saying that Pluto is not a planet. They can go f*** themselves

1

belugwhal t1_iy92b7d wrote

Anyone who works closely enough with computers to have an opinion on this understands that a one GB hard drive actually provides less storage space than one (proper) GB. I'm with ZylonBane. They should have made 1000 bytes a kibibyte (therefore releasing most of us from having to use it) and left kilobyte alone as the proper term. If anything I will use kB or KB but not KiB. That's just silly.

1

explainlikeimfive-ModTeam t1_iy944mq wrote

Your submission has been removed for the following reason(s):

Please search before submitting.

This question has already been asked on ELI5 multiple times.

If you need help searching, please refer to the Wiki.

If you would like this removal reviewed, please read the detailed rules first. If you believe this was removed erroneously, please use this form and we will review your submission.

1