-1

I get why we have the number 1024 instead of 1000 to use the suffix "kilo" in computing (computer uses base 2, so 2 ^ 10, blah blah blah). So I get the kilo part, but why is it called a kilo - "byte"? To make a kilo - "byte", we need to use bits with 10 digits from 0000000000 to 1111111111. That is not 8 digits, shouldn't it be called something else.

I.e. a kilobyte is not 1024 groupings of 8 bit binary digits, it is 1024 groups of 10 bit binary digits and a megabyte has even more than 10 binary digits - not 8. If asked how many bits are in 1 kilobytes, people calculate it as 1*1024*8. But that's wrong! It should be 1*1024*10.

  • 1
    kiloBYTE because its 1024 BYTEs. that's just english. – L_Church Jun 25 '18 at 08:42
  • Wut. No. byte is 8 bits. Has been for ages. Where are you getting this about 10 bits?!? (Also, formally, 1KB = 1000 bytes, 1KiB = 1024 bytes; though no-one except hard drive manufacturers uses it.) Each byte has one of 256 values (00000000-11111111), and kilobyte has 1024 bytes. The two numbers are not related. – Amadan Jun 25 '18 at 08:45
  • @Amadan "Where are you getting this about 10 bits" Well, let's say I have computer memory address spaces to store 1024 different "numbers". To do that, I need to use address labels 10 bits long, since any less (e.g. 8 bits) can't go as high as 1024, only 256. So now I have 1024 different addresses labelled by 10 bit patterns. But now I have what's called, a kilo"byte", of addresses, even though each address level has 10 bits not 8. Am I confused? – Dolan McDooby Jun 25 '18 at 08:58
  • You are. Modern computers don’t have 1Kb address space. Typically addresses are written in words (16 bits), double words (32 bits) or quadruple words (64 bits). – Amadan Jun 25 '18 at 09:12
  • @Amadan I figured it out! This comment didn't help but your first one did. When you said "The two numbers are not related" in your first comment after "Each byte has one of 256 values (00000000-11111111), and kilobyte has 1024 bytes". I thought about it and now I GET IT! Thanks. If anyone is confused and wants me explain let me know. Also, how do i vote the right answer? – Dolan McDooby Jun 25 '18 at 09:30
  • Someone (could be you) would need to answer first. All of these are comments. – Amadan Jun 25 '18 at 09:31
  • You are confusing what is in the container with the label on the container. the container holds a byte which historically was sometimes 9 bits and sometimes 8 bits, but 10 bits makes no sense, not that there could have been an exception. The label on the container is the address to get at that container and that address has as many bits as it needs to do the job. So if you have a gigabyte's worth of memory the containers still hold 8 bit bytes, the the label, the address to get at that container is what 30 bits at least? Or these days 2 or 3 fewer with a byte lane mask. depends on the bus. – old_timer Jun 25 '18 at 18:45
  • a byte sized address assuming an 8 bit byte can only address one of 256 things that is correct understanding but when we talk about kilobytes we are talking about 1024 8 bit bytes. – old_timer Jun 25 '18 at 18:46

1 Answers1

1

I.e. a kilobyte is not 1024 groupings of 8 bit binary digits, it is 1024 groups of 10 bit binary digits

You are confusing the size of a byte with the size of the value needed to address those bytes.

On most systems a byte is 8 bits, which means 1000 bytes is exactly 1000*8 bits, and 2000 bytes is exactly 2000*8 bits (i.e. exactly the double, which makes sense).

To address or index those bytes you need 10 bits in the first example (2^10) and 11 bits in the second (2^11 up to 2048 bytes). It wouldn't make a lot of sense if the size of a byte was changing when there are more bytes in a data structure.


As for the 1000 (kilobyte) vs 1024 (kibibyte):

1 kB  (kilobyte) = 10^3 = 1000
1 KiB (kibibyte) = 2^10 = 1024

A kilobyte used to be generally accepted as being 1024 bytes. However at some point hard disk manufacturers started to count 1 kB as 1000 bytes (kilo being 1000 which is actually correct):

1 GB  = 1000^3 = 1000000000
1 GiB = 1024^3 = 1073741824

Windows still used 1 kB = 1024 bytes to show the hard disk size, i.e. it showed 954MB for 1GB of hard disk space. I remember a lot of customers complaining about that when checking, for example, the size of their 250GB drive which only showed 233GB in Windows.

Danny_ds
  • 11,201
  • 1
  • 24
  • 46