Hacker News new | ask | show | jobs
by _fn 1437 days ago
I don't get it. I thought a kilobyte is only 2^13?
3 comments

A kilobyte is ~2^13 bits, but each bit is a power of 2 in regards to "things you can do."

So it's more like 2^2^13.

Technically a kilobyte is 1000 bytes exactly, so I'm not sure why the title says 2^1024 rather than 2^8000, which is the actual number of states in a kilobyte.

Lol, I was wondering how long I'd have to scroll to find an accurate definition of kilobyte.
A byte is 8 bits long (2^3), so there are 256 distinct values you can store in a byte (2^(2^3) = 2^8 = 256).

A kilobyte is 8192 bits long (2^13), so there are 2^8192 distinct values you can store in a kilobyte.

With 98% accuracy, a Hyperloglog can count ~4Bn distinct 64-bit integers in ~1.5Kb.

Without a data structure, this would take GigaBytes (1M times the space).

That's pretty incredible to me.

Do the combinatorics of every possible combination of 4B distinct 64-bit integers that that 1.5kb can represent.

Mind blowing.

If I did the calculations correctly, that's over 20 Exabytes worth of data that ~1.5kb could represent with ~98% accuracy.

20 Exabytes is probably close to all the information stored in Google...

I think what really fastinates me is how much better we can solve a problem if we allows some approximation/uncertainty.
That's 8192 bits, with which you can represent numbers moderately higher than 2^13.