Hacker News new | ask | show | jobs
by belgesel 1821 days ago
I do use 1000^n, but I agree that most people tend to use 1024^n. 1000^n kind of makes more sense since "kilo, mega" etc. are the actual SI prefixes for multiples of 1000s. I don't know who or what caused this chaos but 1000^n is definitely more human friendly.
3 comments

I feel the problem may be that, unlike just about every other unit in SI, bits are discrete, not continuous. Except in few very specific subfields of theoretical CS, there's no concept of a fractional bit. You can have kilometers and millimeters, you can have kilobits and kilobytes but not milibits and milibytes.

The nature of bits is that of a base-2 system, so using power of 10s for counting them is only superficially human friendly - in practice it's human-unfriendly, because it flies in the face of how bits are used. All hardware and all software groups them by powers of 2, that's inherent to what bits are.

> 1000^n is definitely more human friendly.

It may be more human friendly, but 1024^n is more programmer friendly, especially at the low level.

Yes, powers of two match physical reality of binary computer architectures, while powers of ten in computing are a marketing concept.
1000^n might be more human friendly but computers aren’t decimal machines and a byte isn’t 10bits. 1024^n technically makes sense as a unit for binary machines that have 8bits to a byte.

Everyone was happy with 1024^n convention in the 80s. The problem was HDD manufacturers got greedy and switched to 1000^n to make their drives sound like they had more storage. Thats what started the confusion.

RFC 1951 (NTP) was published in 1988 and refers to 56k modems. Does a 56k modem operate at 57344 bits per second or 56000 bits per second? Your claim implies the former, but I'm pretty sure it was always the latter.

> a byte isn’t 10bits

It could be. Historically, the number of bits per byte varied somewhat from machine to machine. Many standards used the term 'octets' to avoid ambiguity.

Historically yes. But even as early as the 60s 8bit was the norm. IIRC C then “standardised” 8bits (though ASCII went some way to doing that prior to C).