Actually, you have to differentiate how marketing and engineering approach a 'byte'.
Normally, we equate numerical prefixes such as mega- and giga- to the decimal system where mega is 1 million or 1,000,000, while giga is 1 billion or 1,000,000,000. Bytes, however, are based on the binary system.
Since binary is base-2, someone decided that a kilo (which should be 1000) could be expressed as 2^10 or 1024, which is close to a thousand; that became the basis for a kilobyte.
Things just sort of grew from there where a megabyte, which is actually a thousand kilobytes, was expressed as 1024 x 1024= 1,048,576 bytes. A gigabyte then becomes 1,073,741,824... ang gulo, no?
Here's where it gets tricky. For marketing, a thousand bytes IS a thousand bytes; 1000, NOT 1024. A 250 gig HD will give you exactly (or close to) 250,000,000,000 bytes, no more. Divide that by 1,073,741,824.... it equals 232.830 gigs. Makes you feel kinda shortchanged, di ba?