17

Here I have this file in Windows:

enter image description here

But isn't 62,563 bytes 62.6 KB?

enter image description here

11
  • 24
    See XKCD #394
    – Nick T
    Commented Jul 22, 2014 at 21:07
  • 6
    possible duplicate of What is the difference between a kibibyte, a kilobit, and a kilobyte? Commented Jul 22, 2014 at 21:28
  • 11
    Mac uses decimal kilobytes (the IEC standard), while Windows still uses binary kilobytes (since renamed to kibibytes), Linux usually refers to KiB (the renamed binary kilobytes). Personally, I think this is all kinds of mucked up. One doesn't buy a stick of RAM with 1,000,000,000 bytes in it, but instead buys a stick of RAM with 1,073,741,824 bytes. But when you buy a hard drive, you buy it with 500,000,000,000 bytes available on it, even though sectors are allocated in multiples of 512 bytes. I liked my kilobytes when they were binary...
    – phyrfox
    Commented Jul 23, 2014 at 3:48
  • 1
    @phyrfox: 1 MHz of CPU is 1 million cycles, not 1,073,741,824 cycles. 1 Mbps of network traffic is also 1 million bits.
    – Zan Lynx
    Commented Jul 24, 2014 at 9:55
  • 3
    @ZanLynx Mega is not 1 million, it's adapted "great" from Greek. Also, as they are, SI prefixes only make sense with physical units. But bytes and bits aren't physical units. Moreover, as SI prefixes are standardized, there's also a standard for memory sizes, which defines meaning of kilo, mega and giga as 1024, 1048576 and 1073741824 respectively.
    – Ruslan
    Commented Jul 24, 2014 at 20:07

4 Answers 4

52

62,563 bytes are 61.0966797 kibibytes. The kibi prefix means that the base for calculation is 1024, bi standing for "binary" because 2^10 = 1024. It's only one of the binary prefixes, others being mebi or gibi.

A kilobyte on the other hand is 1000 bytes, using the classic SI prefixes that you know from kilometers and kilograms. It's using the decimal base, 10^3 = 1000, so Google is actually right. If you had googled for the same amount in kibibytes, you'd have gotten the right answer in computing terminology.

It's really important to make the distinction between kilo and kibi these days, and actually, Windows should report it as "61 KiB" to be absolutely precise. This is the IEC convention for making the distinction easier.

That being said, there's still a lot of ambiguity these days, where hard drive sizes are typically reported in binary units (but not always explicitly), and connection speeds are given in SI units.

10
  • 1
    @Joker_vD: Luckily so ;-) kilo and mega (and whatever other prefixes would follow) are just factors, not quantities of their own, so using just K and M (and G and T and P etc.) would be quite pointless. (The same is valid for the prefixes kibi, mebi etc., obviously.) Moreover, all commonly used units are nicely free of ambiguity, as no abbreviation is used twice, but K would at first glance look the same as K for Kelvin. Commented Jul 23, 2014 at 6:35
  • 1
    @O.R.Mapper Yes, and T would be mistaken for Tesla. Because obviously, programmer's manuals often discuss underlying physics.
    – Joker_vD
    Commented Jul 23, 2014 at 6:43
  • 1
    @Joker_vD: Whether or not physics could appear there is irrelevant. The point is, unit signs K and T wouldn't be unambiguous without any context any more - thus creating an undeniable disadvantage compared to a unique mapping between unit signs and units -, making such a convention highly undesirable. Commented Jul 23, 2014 at 6:46
  • 1
    Who outside of a niche of the computer world knows what a 'kibibyte' is? By the way, it was only recently that Google was 'right'. It's still a very alive debate on whether a kilobyte is 1000 or 1024 bytes. Commented Jul 23, 2014 at 6:48
  • 9
    Am I the only one who's a little upset that this gets truncated to 61.0, rather than rounded to 61.1? Commented Jul 23, 2014 at 7:05
21

Yeah, think of google as the Mad Hatter. You have to ask the right question. Or perhaps an Elf: Sometimes your answer will be both yes and no.

byte to KiB. The computer's kilobyte; or the kibibyte.

6

1KB = 1024 bytes. Thus:

62563 / 1024 = 61.097KB

As a shortcut many people and systems treat a KB as 1000 since Kilo is the SI prefix for 1000. Computer scientists however use the prefix for 2^10 which is 1024.

0
5

Most computer-related numbers use binary prefixes, in contrast to SI system which uses decimal prefixes. It means that:

  • 1 kilogram = 103 grams, but
  • 1 kilobyte = 210 bytes

That's respectively 1000 grams and 1024 bytes. 62563 / 1024 ~= 61, so Windows is right.

Not everything computer-related is based on binary prefixes, though, and this inconsistency often leads to misunderstandings. This Wikipedia page describes what prefixes are used for measuring different things.

One extreme case is bandwidth. It's typically using binary prefixes when expressed in bytes per second and decimal prefixes when expressed in bits per second. So this sentence is true:

1 byte per second = 8 bits per second

But this one is false:

1 kilobyte per second = 8 kilobits per second

Because:

  • 1 KB/s = 1024 B/s
  • 1 Kbps = 1000 bps

(related question)

3
  • 1
    Mistake: 2^8 = 256 ---> I suppose that should be 2^10 ;-)
    – Hannu
    Commented Jul 22, 2014 at 21:00
  • The WP talk page is much more interesting than the actual article (a very giant debate on whether a KB is 1024 or 1000 bytes). Commented Jul 23, 2014 at 6:47
  • Bandwidth is properly expressed in Hz, where the SI prefixes use powers-of-10. The reason throughput (transfer rate of data, equivalently bandwidth multiplied by encoding efficiency) is ambiguous is because the first definition leads to (KB)/s, where KB uses the binary-based prefix, and the second is based on kHz or kbaud, using the decimal-based prefix.
    – Ben Voigt
    Commented Jul 24, 2014 at 17:32

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .