You have not lost any space due to corruption.
People are miss informed about the storage space. It's common.
Short explanation: Windows will always see slightly smaller sized than the advertised size of the hardware label because it calculates size using a different memory unit system.
Long explanation:
Before the standardized of the binary prefixes, the computer world based the sizing off SI prefixes. SI prefixes calculates storage space using base 10 while binary prefixes calculates storage using base 2. We've all heard the common phrase that 1 MB = 1000 KB. However....
8 bits = 1 byte. This is where both SI and binary are equivalent. Going beyond starts to differ. I will show u how they differ calculating to the bits (the common units of both systems).
SI prefix: Base 10
10^3 = 1,000 bytes = 1 kilobyte
10^6 = 1,000,000 bytes = 1,000 kilobytes = 1 megabyte
binary prefix: Base 2
2^10 = 1024 bytes = 1 kilobyte
2^20 = 1,048,576 bytes = 1,024 kilobytes = 1 megabyte
Now... for the 512 megabyte in question:
Going with SI:
512 megabyte = 512 x 1 megabyte = 512 x 1,000 kilobytes = 512 x 1,000,000 bytes = 512 x 10^6 = 4,096,000,000 bits
(as you can see, that resembles the 4Gbit we're seeing as advertised on the G6. 1 Gigabit = 1,000,000,000 bits)
Going with binary:
512 megabyte = 512 x 1 megabyte = 512 x 1,024 kilobytes = 512 x 1,048,576 bytes = 512 x 2^20 = 4,294,967,296 bits
The problem is this:
The storage company uses SI prefix (base 10) to claim their storage size. HOWEVER, your windows operating system uses Binary prefix (base 2) to calculate size...
So this is what happens:
The memory manufacturer claims 512 megabyte in base 10, so it comes out to be 4,096,000,000 bits. Again, this bits unit is where both systems are equivalent.
Your computer takes that 4,096,000,000 bits and convert it to megabyte for you.... BUT, it doesn't divide by 1,000 as in base 10. (and also that was how the number was originally obtained) Instead, it divides by 1,024 as your windows operating system calculates off base 2! Thus...
4,096,000,000 bits = 512,000,000 bytes (after dividing by 8 bits) = 500,000 kilobytes (after dividing by 1024 bytes) = 488.28125 megabytes (after dividing by 1024 kilobytes)
Here's proof:
http://www.onlineconversion.com/computer_base2.htm
As you have undoubtedly guessed it, the storage manufacturers prefer the SI system using base 10 because it makes their device sounds larger. As for why your computer is reporting 499 megabyte instead of 488 megabyte... All I can say is that there must be some roundings that the system did to obtain that value.
There you have it.
And yes, I'm bored at work and just thought the common flash card community should be aware of this miss leading advertisement.
You may link to this post for any further arguments concerning disk spaces. hehe