this post was submitted on 27 Dec 2023
144 points (69.6% liked)
Technology
59671 readers
3581 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Short answer: It's because of binary.
Computers are very good at calculating with powers of two, and because of that a lot of computer concepts use powers of two to make calculations easier.
Edit: Oops.. It's 2^10^, not 2^7^
Sorry y'all.. ๐
FYFY
~~FYFY~~ FTFY FTFY
Yeah, I deserve that. Iโm just gonna leave my typo. Thanks for the laugh!
I'm confused, why this quotation? 1024 is 2^10^, not 2^7^
So the problem is that our decimal number system just sucks. Should have gone with hexadecimal ๐
/Joking, if it isn't obvious. Thank you for the explanation.
Or seximal!
Not that 1024 would be any better, as it's 4424 in base 6.
Long answer
Harvard's CS50 has a great explanation on it. Makes a ton of sense. In fact CS50 should be required for high school, people would have a much better understanding of how software works in general.
Understanding that has very little advantage for the average person.
So teaching it alongside things like the quadratic equation makes perfect sense then.
Would be better to not teach either.
Exploring concepts that aren't familiar to you can help you with other issues in your daily life. It helps you problem solve from a new perspective.
I believe it's because you always use bytes in pairs in a computer. If you always pair the pairs, you would eventually get the number 1024, which is the closest number to a 1000.
The logic is like this:
2+2 = 4
4+4 = 8
8+8 = 16
16+16 = 32
32+32 = 64
64+64 = 128
128+128 = 256
256+256 = 512
512+512 = 1024
"Kilo" means 1000 under the official International System of Units.
With some computer hardware, it's more convenient to use 1024 for a kilobyte and in the early days nobody really cared that it was slightly wrong. It has to do with the way memory is physically laid out in a memory chip.
These days, people do care and the correct term for 1024 is "Kibi" (kilo-binary). For example Kibibyte. There's also Gibi, Tebi, Exbi, etc.
It's mostly CPUs that use 1024 - and also RAM because it't tightly coupled to the CPU. The internet, hard drives, etc, usually use 1000 because they don't have any reason to use a weird numbering system.
Weird numbering system? Things are still stored in blocks of 8 bits at the end, it doesn't matter.
When it gets down to what matter on hard drives, every byte still uses 8 bits, and all other numbers for people actually working with computer science that matter are multiples of 8, not 10.
And because all internal systems use base 8, base 10 is "slower" (not that it matters any longer.