Updated When is a 256MB CompactFlash card not a 256MB CompactFlash card? When it comes from storage specialist SanDisk, it seems.
According to the company's Web site, SanDisk doesn't accept the definition of megabyte that world+dog does, and has imposed its own view.
But, like most of the World's pain, it's all Microsoft's fault.
In answer to the question, "Why is the size of my card appearing slightly smaller when read by my system than the capacity listed on the label?" the company's FAQ says: "SanDisk uses 1000KB to equal 1MB whereas Microsoft and some other companies use 1024KB to equal 1MB."
The site continues:
Microsoft's MB is 1024KB x 1024KB = 1,048,576KB
Our MB is 1000KB x 1000KB = 1,000,000KB
48,576 KB difference
48,576KB X 64MB (our 64MB CF card) = 3,108,864MB"
Confused? We're not surprised, since clearly SanDisk can't tell megabytes from kilobytes and even bytes themselves. From the example it seems that SanDisk doesn't even accept the standard definition of a kilobyte as 1024 bytes.
What we think it's trying to say is that a SanDisk megabyte is 48,576 bytes smaller than everyone else's. So, if you buy a 64MB SanDisk CompactFlash card, you'll actually get 3,108,864 fewer bytes than you expect.
From what we recall from that Computer Studies O-Level we did back in the early 80s, there are eight bits to a byte and 1024 bytes to a kilobyte. In Register style, that's 8b = 1B and 1024B = 1KB (ie. lower-case for 'bit', upper-case for 'byte'). Why does 'kilo' here represent 1024 not 1000, as it does in the metric system? Because it's all to do with binary notation, since two raise to the power of ten gives 1024 not 1000.
So SanDisk is wrong there. At the very least, its megabytes should be 1024 x 1000, not 1000 x 1000. Now, we have a sneaking suspicion that megabyte (MB) is defined as 1000KB, not 1024KB, but even if that were the case - and we're not sure our memory isn't playing us false on this one - since everyone from Apple to Zilog defines 1MB as 1024KB, that's the way it is.
It's like a British billion being 1,000,000 x 1,000,000, but a US billion being merely 1000 x 1,000,000. The US version is the most commonly used, by a long chalk, so it's the de facto definition. And the one we use here on The Reg.
Meanwhile, SanDisk is merrily offering Flash cards with a lower capacity than anyone would expect, but claims it's in the right by adopting its own definition. This can't be right. If Microsoft started redefining bugs as features, there'd be an uproar.
What d'you mean, it already has?
Oh, heck... ®
Thanks to reader Phil White for the SanDisk link
SanDisk: FAQ page - choose the Capacity topic and then the 'Why is the size of my card...' question