# Snow Leopard ditches real math for fake

We’ve always felt that hard drive manufacturers were dirty crooks because of their use of fake math to make drives sound bigger than they actually are. Here’s a quick refresher for those who need it: Because digital information consists of 1’s and 0’s (two possible settings), digital architecture revolves around powers of 2. Long ago, when nomenclature was setup for measuring data the term kilobyte was adopted to represent 2 to the 10th power bytes (base 2, aka real math). The problem here is that 2^10= 1024 and when laymen hear the root “kilo” they think 1000 which is 24 byes less (base 10, aka fake math). So, if you have a 500,000,000 byte drive, base 10 math would call that a 500GB drive, but base 2 math would call that 476.8GB.

We understand why hard drive manufacturers use the base 10 system; larger sounding drives sell better. Now we find out that OSX 10.6 Snow Leopard is using base 10 math to calculate storage space. While base 2 math is the standard storage measurement for operating systems it may at first be difficult to understand why Apple would change to a base 10 system. But think about it once more, doesn’t Apple have a lot to gain if all the storage-containing-hardware they sell sounds bigger than it actually is?

[via Gizmodo]

Update: Force Snow Leopard to calculate storage in base 2 [via Gizmodo]

## 171 thoughts on “Snow Leopard ditches real math for fake”

1. Dave says:

In regular windows pc terms a kilobyte is 1024 bytes and a gigabyte is 1024 megabytes PERIOD!

2. Jac says:

10^3 bytes = 1 keb (1 kiddingbyte)
10^6 bytes = 1 meb (1 meddlingbyte)
10^9 bytes = 1 geb (1 giddybyte)
10^12 bytes = 1 teb (1 teddybyte)

In the real world where it matters that memory is on chips that have a square array of cells (which always results in capacities that are powers of two), it’s called kilobytes, megabytes, gigabytes and terabytes. The abbreviations for the base-2 quantities are normally written in upper case for a reason: in the SI system the k, g and t are in lower case and the upper case k, g and t were meant to mean “slightly more” (in si, the m is already in upper case, oh well).

I can understand that storage manufacturers want to sell you some bridges but why not use the lower case abbreviations for clarity? Also, why are (were) smaller media such as cf and sd/mmc cards sold in base-2 multiples of base-10 amounts? I’ve never seen a 10 meb, 100 meb, or 10 geb cf card, they’re always 16, 32, 64, 128, 256 or 512 etc. “mb” but the “mb” really means meb.

Apple probably just made the chance to reduce support calls from stupid users that don’t know the difference between decimal and binary (I bet Microsoft gets a lot less calls like that — maybe they should bring THAT up in a Mac vs. PC ad some day)

Bottom line: Operating systems should really give users a choice to decide for themselves what’s real.

3. Ethan says:

Problem… 500,000,000 is 500 mega whatevers, not giga whatevers
5,000,000,000 is giga whatevers…

4. delicious bacon says:

as a computer science graduate, kilobyte = 2^10 = 1024. this is NOT open to discussion, I am sooooo sick of these companies fudging the math particularly hard drive manufacturers.

5. So Say We All says:

@delicious bacon

But 2^10 != 10^3. As a computer science graduate, you should know that everyone is wrong. What we call a kilobyte (2^10) isn’t a kilo (10^3) byte. It was carelessly named, and, IMO, Apple took the wrong technical stance to take the right semantic stance. We know that 2^10 is the number that matters, so to me at least, it would have made more sense to change the language than change the numerical value of the operative unit to that of one less apt. But such is Apple’s way. Binary be damned.

6. Wwhat says:

I’m sure it’s just because apple users don’t understand computers and all those computer terms are too much for them.

7. Wwhat says:

Here’s another thing to consider even outside of apple and HD’s: Why byte? we moved away from 8 bit computing so damn long ago, why not words or longwords? Even the cheapest low spec CPU you can get now is at least 16 bit right?
And RAM isn’t addressed in bytes or accessed in bytes and the data on HD’s isn’t written in bytes either, it’s always at least words, and mostly at least 32bit longwords.

8. Low Pro says:

Come on now. Who cares about this stuff besides the people with the tools to find out for themselves? I can find the correct drive size as well as file size as can everyone else in the comments section.

Friendly GUIs are made to be easy to use without being overbearing. As for the 1000 vs. 1024 thing, leave it alone. If I have to start remembering exact file sizes in everyday conversation, I’ll hold you all accountable.

9. Terc says:

Ok, I’m not getting involved in the argument over what math is correct.

Apple has removed a source of confusion for users. Does anyone care if their picture is 1.23MB or 1.25? No. But if they buy an 80GB hard drive and it shows up as 73.8GB, then they are confused. So, since hard drive manufacturers have refused to go to base 2 math, Apple has simplified it from their end. Result: files report slightly larger sizes, but when you plug in a 500GB hard drive, you see 500GB, not some smaller number. End user does not care about slightly larger files, just that their drive reports the same size as what they thought they were getting.

10. Mic says:

I was so disappointed by the comments. You are all beyond rehabilitation. Sry guys. 1024, in the real world as Dave already said. Fact the rated capacity of a drive is larger than the real capacity. which is Why hackaday called it fake math on behalf of manufacturers….Heha, a 2 mb floppy is 1.77 mb real world =) 500 is 476.8 Aight. way she goes.

11. urza9814 says:

Yea, and when Gmail or Hotmail or whatever says ‘your attachment is too big, the max size is 20MB’, the mac users will be sitting there going ‘But it’s only 19.9! There must be a bug in [mail client]! Fix it!’

But hey, what can you expect. I guess they’re just like Microsoft – they do things their way, who cares about the users or the standards.

12. gm says:

Hey, it could be worse. Vista 32-bit was changed so that it reports that you have 4GB of RAM if you install it – but you can only use 3GB of it, possibly less. How’s that?

13. @wwhat – what? Most low-end microcontrollers (take the oh-so-popular Arudino for example, using the AVR micro) are 8bit. Also, 8bits is a byte. Period. Using anything else would be confusing, also addressing *IS* still done bytewise, man.. Yes, even on 32 and 64bit machines. Hence why 32bit machines can only directly address 4 gigabytes of memory (as in 4,294,967,296 bytes, as in 2^32, hence 32 bits).
Hard drives, too.
The strict definition of “word” is generally architecture-specific, too. Maybe there’s some strict definition floating around somewhere, but I’ve certainly seen varying size “words” out there.

14. mike says:

good thing all the software guys are switching to base 10 when the hardware guys are switching to base 2 with nand-based storage.

15. cantido says:

>Hey, it could be worse. Vista 32-bit
>was changed so that it reports that
>you have 4GB of RAM if you install it

Because it’s reporting what the roms on the modules tell it.

> – but you can only use 3GB of it,
> possibly less. How’s that?

Because without bank switching, paging etc you can’t address more than 4GB of “memory” with 32bits worth of address. That’s not to say a “32bit” processor couldn’t have a bigger/smaller address bus, but that’s a different story. Lots of older amd64 machines have memory controllers that are only able to address 4GB of “memory” too.

So why can you only access 3GB or less.. notice that i put speech marks around “memory”, your address space contains lots of memory mapped things as well, like your expansion buses. So basically the total accessible memory is going to be 4GB – address space allocated to memory mapped peripherals. Not that any of this matters on 32bit windows though, because of the wonky memory setup for processes you’d be lucky if a single process can use more than 1.5GB of actual RAM.

16. Brian Danger Hicks says:

Dude, complaining that they’re using 1000 bytes to mean one kilobyte is like complaining when people use pi in their calculations instead of the number three.

17. cantido says:

@eric
>Also, 8bits is a byte. Period.

A byte is generally 8 bits. But not “Period”.. some places a byte isn’t 8 bits.

>Hence why 32bit machines can only
>memory (as in 4,294,967,296 bytes,
>as in 2^32, hence 32 bits).

Lots of people confuse what makes an architecture n bit. I.e. the Z80 is 8 bit… but it has 16bit addressing, so by a lot of people’s misunderstanding that addressing ability == bit’age, that would make it 16bit and most current amd64 machines 48bit.

>The strict definition of “word”
>is generally architecture-specific,

Yes, less common but bytes are the same.

>Maybe there’s some strict definition
>floating around somewhere

Word sizes are confusing because they can be sensible, the unit size the machine likes to work with, or based on what the machine has developed from.

basically, assumption is the mother of all fook ups, read your manuals.

18. Tom says:

Better would have been Apple switching to kib. Now I get to hear users arguing about file sizes when submitting papers.
They took the standard out of an accepted, if possibly wrong, STANDARD and in the process made everyone else look like the dick.

19. @cantido
> Lots of people confuse what makes an architecture
> n bit. I.e. the Z80 is 8 bit… but it has 16bit
> addressing, so by a lot of people’s
> misunderstanding that addressing ability ==
> bit’age, that would make it 16bit and most
> current amd64 machines 48bit.

Absolutely right, sorry, I didn’t mean to imply that an n-bit CPU necessarily has n-bit addressing :)
I haven’t seen any alternate definitions for byte, but it wouldn’t surprise me if 8bits isn’t *always* the case!
And I agree wholeheartedly: always always always rtfm. When your code doesn’t work on the fancy new mega ultra hyper micro, it’s probably because you missed something in the datasheet (that or, in the worst of cases, the manufacturer neglected to MENTION it in the datasheet.. I hate when that happens).
Reminds me of this time with the at90usb1286, Ateml conveniently mistyped the register settings for the clock prescaler, and my code just _would_not_ run and it took me at least a month to figure out it was the prescaler.. even then it was only when I found someone else’s code containing the correct register definitions that I realized my error!

20. Bob says:

Its a shame we were born with 5 fingers on each hand. If we just had 8 fingers per hand, 16 total, then everyone would have learned to count in base 16 and the transition to base 2 would be much easier for the general public.

Okay, Ill call call 1000 bits a kilobit. But then then the rest of the world has to replace the 12’s on their clocks with zeros. We start counting at zero so should our clocks. People already accept switching between am/pm at 12, why no reset the whole clock and go to zero, heck even the military does it at midnight.

21. Tux-fan says:

if we are just going to correct a historical error can someone quickly rewrite all these textbooks

yes, electrons are negatively charged and thus, the current goes from minus to plus

how many billions of student do we like to confuse with the differences between electrical and physical current direction ?

22. nave.notnilc says:

so yeah, when are we going to start measuring ram in base 10? do you have 4gb of ram? nope, you now have 4.2949673! :D

23. Yes, the way Apple is doing it with Snow Leopard is technically correct. However, I’d like to see them include a toggle so that if we liked measuring things in base 2 we could still do that.

24. robocat says:

Interesting that on an international site, most comments seem to prefer kilo to be a standard that means the same multiplier of 1000 in all situations. American-centric geek sites seem to argue k = 1024. I have always had a stereotype that the 1024 supporters are american non-engineer types: “yawl hokey euro-metrics messin wit stuff dat dona be wanted messin wit”.

25. Stuee says:

for goodness’ sake…

we all know that technically the terms we use to describe our base 2 units are base 10 descriptors, but we all also know that these base 10 terms such as kb, mb, gb, tb, etc., have been used since the 1960’s to indicate multiples of 1024, probably because these terms were already in our language and easier for people to grasp. yes it’s technically incorrect, but it’s accepted, common practice. there are plenty of misused terms in our language, but we let it slide because we all know what we mean.

if only the powers that be had had the foresight to start out using the proper terms (mib, gib, etc.) from day one this would never have been an issue, but they didn’t so here we are.
it’s far too late to be introducing ‘new’ terms for tens of millions of computer users to get used to (i.e. mib, gib, etc.), and it’s also far too late to decide to change/correct the value of the universally used terms, mb, gb, etc.

imagine telling the world, “hey guys, you know the unit of measurement we call the ‘foot’ is made up of 12 inches? well actually it isn’t, it’s 10. all that time ago, when we told you that 1 foot = 12 inches, err, well, we lied. 1 ‘foote’ is 12 inches; 1 ‘foot’ is actually only 10 inches, so now you’re all going to have to get used to the 10 inch foot… so when you order curtains or timber or clothes or windows (anything!) it will still be measured, constructed and labelled using the 12 inch ‘foot’, but when you get it home you’ll most likely find that none of it fits because you measured up using the new improved 10″ foot. ok?” err… wtf? no!!
[sorry, i know it’s not the best analogy in the world, but hopefully it conveys my point]

anyway, as we’ve all agreed to ignore the misrepresentation of mibibytes as megabytes, etc., for the last 40-odd years, let’s just carry on shall we, and get the blasted storage device manufacturers to conform to the way it’s been since modern computing began so we can have some consistency back in our wonderfully binary lives!

to illustrate why this won’t work and how it will confuse people: if i download a 200mb file, i expect my os to report that it is taking up 200mb of my storage medium, but snow leopard will tell me that it’s about 204.8mb. not confusing?

similarly, when i upload a 200mb file that i’ve created to, say, rapidshare, i want it to arrive on their servers and see a 200mb file sitting in my account, but of course a ‘200mb’ file created in snow leopard will only be a 195.xmb file on the server so i’ll think the upload broke and try again, with exactly the same confusing result.

in snow leopard, every file i ever upload will appear online to be smaller than it appeared on my computer.
have apple lost the plot?!!

26. louis ii says:

ram would be measured in base 2 still.
ram would have to follow the kib, mib, gib, tib system, lest it make little to no sense… though this may help users understand the inherent difference between “memory” and “storage space”.

27. louis ii says:

I suppose the implied question becomes:
“is ram measured in base 2 or base 10?”

28. Stuee says:

What’s with this site not allowing capital letters? Sucks.

29. Stuee says:

What’s with this site not allowing capital letters? It makes me look like a lazy school kid :-/

30. Simon says:

This is a change for the better and all the luddites posting on the anti-change side of the argument are just going to have to try to keep up, or be left behind.

Perhaps you could form into some sort of closed-up Amish community where you can cling to the ancient ways forever? This is a technology forum – and technology is moving forward.

31. Marr says:

Everything you say is true, Stuee, but you miss the point. *Apple* are doing this, so it’s automatically awesome. The entire rest of the industry just have to step into line.

32. Sanity Check says:

I find all these pro GiB comments funny. I mean the base unit is already 8 which is not a multiple of 10 to begin with. So, while they borrowed the si units the new terms were not created till recently and going back to the 1.44MB floppy you are all falling for Advertisement BS over technical reality. From the way your file system is formatted to the way your ram is calculated. Computers min and max ranges are in powers of two so you should likely keep the calculations to that.

What I don’t understand here is why Apple didn’t just make the push to switch everything in to iBs instead of Bs but oh well

Simply put Kilo means one thing in SI and another in base 2. Get over it. Other forms of non plater based memory are already in base 2 like flash which comes in powers of 2 because of the way its manufactured.

Finally who wants to start buying ram in really odd decimal values when we define a gb of ram to be less then 1024 mbs I would love to by 1.024 kbs of ram. Tech people get touchy over IEEE comming in and saying after 40 years you need to put a i between then the K and the B but I guess its going to happen one day.

33. moontear says:

Since 2004, 1kB = 1000 bytes according to the IEEE (SI Units).

I don’t like it either, but this is the way it is. Now just wait until they invalidate non-metric units like Inch and Foot… :-)

http://en.wikipedia.org/wiki/Kilobyte

34. Gert says:

What will be next? A help menu based on the Bible?

This kind of stuff is what crazy conservatives and small minded people do. This is more of a habit for Microsoft.

35. Gert says:

@moontear: Yeah we actually should dump the non-metric system and we also should dump Fahrenheit and Celcius and adopt Kelvin instead.

I hate having to convert every °F into K or °C.

Just switch everything to the SI systems. Much easier.

Kilogram however is very hard to standardize because gravity isn’t equal across the entire earth. Slugs perhaps?

36. i can't believe this says:

Simon, it isn’t about progress. It’s about faulty definitions. There are many good comments about this here. To put it simply, those opposed to the change are voicing up because Apple is ignoring the numerical basis for the the value in favor of the idealized form derived from how it sounds to people. Apple isn’t necessarily in the wrong, a kilo being exactly 1000 of some SI unit, but the switch makes as much sense as using a yardstick to measure out a meter; that is, it can be done, but as close as the values may seem, they’re not 1:1. It wouldn’t matter so much if the native numeral system of the computer and its hardware weren’t binary, but in our case they are, and as such the units naturally graduate in base 2, not base 10. Redefining the units as base 10 isn’t going to change the fact that, by nature of the binary digits they contain, the drives are going to have a capacity more accurately described in base 2.

37. Nando says:

In computer world KB comes from the JEDEC memory standards and means 1024 B.
Apple has decided to go SI and convince us that that damn 1GB RAM module is 1000 MB, but it’s not!

38. T1MT1M says:

OK well i have my 500gb drive here. your math is wrong. Ethan already pointed it out

5,000,000,000/1024*1024*1024 = 4.6566

Windows says my hard drive is 465gb.

39. T1MT1M says:

stupid site cant edit shit lol. theres supposed to be an extra 2 zeros on that 500,000,000,000 which then makes it right.

40. mrlizard123 says:

Ah, it’s SO confusing when a commonly used (for many years) label for a measurement is actually different to the SI units.

It makes me think of all the times I’ve nearly swerved violently off the motorway at the signs telling me it is 1m to my junction – I recommend we get all the signs changed to say either “1 609.344 m” or “1 mile”…

Alternatively I could accept that miles are a more sensible measure than metres in this instance and it makes more sense to use abbreviations (saves printing all those extra letters).

1024 as a kilobyte may not be “technically” correct using SI units, but since it’s not a scientific paper I don’t think we need to be too anal about it, as long as it’s an understood and accepted usage appropriate to the task. Storage is actually in base-2 so numbers pertaining to data storage in decimal form should really be consistent.

As others have suggested; changing the name is the more sensible option if being SI accurate is the goal but turning the values on their head to match the name is insane – clearly recalculating all values to match the current units is more confusing than changing the constant value of unit to the correct one isn’t it??

41. Tomas says:

@Will, you wrote “Base 10 is fake math? Count your fingers or toes and get back to me.”

This emphasises the problem. I have 8 fingers and 2 thumbs. If you have 10 fingers then you my friend, are a freak.

Much like people say they have 10 fingers when they have 8 fingers, people say kilobyte to mean 1024 bytes when kilo-anything-else means 1000.

42. Wanna get comments? Pick on math on a nerd website.

43. Well this has been a hotly contested article, for sure.

The argument seems to be the canonical definition of Kilobyte for computer types vs. the literal definition for everyone else.

I can understand why a software developer–especially one targeting the “it just works” crowd–would like make a decision like this and go with the representation that is more generally understood. I have certainly seen files that are just over 1000 bytes before show up as over 1000 bytes instead of a 1kB, and I can understand how that may be confusing.

Why not change the labels to kiB? Perhaps it is just that base ten makes sense to most people–and we as computer types are more likely to understand the change than the rest of the population.

On the other hand, I do not see many non-computer types checking file sizes very frequently; aside from the occasional look at the iPod, I doubt there is more survey of disk space than a simple “Is it full?”.

I am curious however: Will itunes report a base 10 value now? Has Apple changed to base 10 on all products?

44. anon says:

“2^10 is not even a base 2 notation”

what the fuck am i reading?

45. Stuee says:

@motoma – no, it is only in the finder that apple have chosen to make this change. All other applications such as itunes, terminal, etc., still report in base 2 making this even more confusing to the average joe.

If you’ll indulge me, i’d love to hear some responses to the last part of my previous post, which points out how this will affect people’s real world experience on a day to day basis:

“if i download a 200mb file, i expect my os to report that it is taking up 200mb of my storage medium, but snow leopard will tell me that it’s about 204.8mb. not confusing?

similarly, when i upload a 200mb file that i’ve created to, say, rapidshare, i want it to arrive on their servers and see a 200mb file sitting in my account, but of course a ‘200mb’ file created in snow leopard will only be a 195.?mb file on the server so i’ll think the upload broke and try again, with exactly the same confusing result.

so in snow leopard, every file i ever upload will appear, online, to be smaller than it appeared on my computer.”

46. 3rix says:

However, if you set all eight(base ten)bits it’d be 1024(Base ten).
#11111111 is 1024

47. 3rix says:

Wait that’s 10 bit’s. WTF?
Shows how much I know.

I’m stupid I guess…

48. 3rix says:

BTW: That was 256.
So I’d better stop flaming the comments.

49. 3rix says:

I mean two-hundredfiftyseven.
I forgot the last bit. Okay, I shouldn’t post any comments in the morning anymore.

50. Stuee says:

3rix you’re spamming the hell out of this discussion mate, please stop! ;-)