Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Data Storage Operating Systems Windows Hardware

When 1 GB Is Really 0.9313 Gigabytes 618

An anonymous reader writes "When it comes to RAM, as every geek knows, 1 GB does not mean 1 billion bytes.. it means 2**30 (1,073,741,824) bytes. However, several decades ago "they" decided that GB, MB, and KB would be interpreted differently when it comes to disk drives; 1 GB means exactly 1 billion bytes. Ed Bott points out that Microsoft's marketers and Windows kernel developers aren't on the same page when it comes to these units: the marketers use the more generous decimal interpretation, while Windows measures and reports capacity using the binary (2**30) measure. Careful customers who bother to check what they've got have been known to get peeved by the discrepancy."
This discussion has been archived. No new comments can be posted.

When 1 GB Is Really 0.9313 Gigabytes

Comments Filter:
  • by Anonymous Coward on Monday February 11, 2013 @07:19AM (#42857219)

    What's all that confusion. XKCD had that sorted long time ago:

    Please pay attention!

  • by TheRaven64 ( 641858 ) on Monday February 11, 2013 @07:50AM (#42857381) Journal

    timothy should get fired

    You can't fire him. He's a 5-line perl script. All you can do is file bug reports.

  • by hattig ( 47930 ) on Monday February 11, 2013 @08:03AM (#42857453) Journal

    So what that back in the day the computer scientists hijacked kilo/mega/giga because 2^10/2^20/2^30 was close enough to 10^3/10^6/10^9?

    Sure, there's a standard now, the unpopular KiB/MiB/GiB, but no-one uses it.

    Regardless, the number that should be reported when describing capacity should be the base 2 number when talking about RAM - as RAM is by its nature a base 2 capacity mechanism. The capacity can be described exactly this way.

    But for hard drives, where the storage is in effect linear across multiple cylinders, heads, etc, is base 2 what should be used - ignoring historical usage? Well, block sizes are in powers of two... but we don't have a power of two number of blocks. We therefore don't have a capacity number that can be described totally accurately using the base 2 numbering system.

    And SSDs? Due to bad blocks, and reserved storage area, we are turning something that was a base 2 capacity memory system into something with less capacity.

    And what about the files themselves? They're not powers of two in size, and indeed they waste capacity at the end of the file because the basic unit of storage in a drive is the formatted block size (512 bytes, 4KB, etc). Maybe block based systems should be advertised as offering "2 Billion Formatted Blocks* (* 512 byte blocks)"! In addition that file is likely compressed in some way that you can't consider that it will use the same space in memory when loaded.

    A strong argument is that because computer RAM is xGB, meaning x * 2^9 bytes, then we should use the same unit for other things in a computer that are expressed in GB, because in the end it is clearer to the user who can compare the two things, e.g., "the computer has 500 times more HD than RAM".

  • by Twinbee ( 767046 ) on Monday February 11, 2013 @08:06AM (#42857463) Homepage
    Well count me then as one of those idiot marketers, because if I was in their position, I would have been proud to do the same, not for the money, but because it simple BETTER to be consistent with the rest of the scientific world. We're behind by saying 1KB = 1024 bytes, not them.

    I made sure my own calc determines "1kb as bytes" = 1000 bytes, and that's how it should be.
  • by Jah-Wren Ryel ( 80510 ) on Monday February 11, 2013 @08:53AM (#42857733)

    Because the 1024-based units ARE the true units, and the 1000-based units WERE created just to make hard drives look bigger than they actually were.

    And to make network interfaces and cpu frequencies look faster than they actually are too!!!

  • by emj ( 15659 ) on Monday February 11, 2013 @09:05AM (#42857813) Journal

    I suspect [timothy] is a 10 million-line Brainfuck program.

    You use new lines in brainfuck? Don't tell me you use space as well, I can't stand that kind of sloppy coding style!

  • by dkleinsc ( 563838 ) on Monday February 11, 2013 @09:33AM (#42857997) Homepage

    Maybe GP is running on a big-endian machine?

  • by JDG1980 ( 2438906 ) on Monday February 11, 2013 @10:51AM (#42858703)

    and by the same standards, 2^10 is a KiB

    No one ever uses that terminology in the real world (well, maybe a handful of standards-crazy Linux developers, but that's about it). There was an attempt to shove it down everyone's throat on Wikipedia a couple years ago and it was decisively beaten back. No one wanted this baby-talk in their articles. The Commodore 64 didn't have 64 "kibibytes" of RAM (I feel silly even typing that), it had 64 KILOBYTES of RAM. That's how prefixes have always been used in the IT world and always will be. The International System of Units can go to hell.

  • by viperidaenz ( 2515578 ) on Monday February 11, 2013 @03:57PM (#42863741)

    Jiggabyte is much better.

"Even if you're on the right track, you'll get run over if you just sit there." -- Will Rogers