Mainstream computers (this means every PC, Mac or otherwise) are binary computers without exception. We store our data on hard drive that write the data as binary (ones and zeros only please).
The blocks of data that you write to the hard drive are done in blocks which are ALWAYS multiples of 512 bytes. For example, 512 bytes, 1024 bytes, 4096 bytes.
There was an example of the Linux command “dd” use which was:
The problem has an easy solution:
The OS needs to start using SI prefixes correctly. Linux already does.
$ dd if=/dev/zero of=test bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0261481 seconds, 382 MB/s
There’s no reason to use powers of two for displaying file sizes. It’s ridiculous and makes it more confusing for the user.
Sean on September 11, 2007 03:38 PM
This is a horrible example I/O use. The bs variable should also be one of the above examples block sizes (512, 1024, 4096) and specifically should be the block size of the filesystem to which you are writing. I agree the Linux is literal in its interpretation of MB but you are using the “dd” command poorly, Sean. Linux will do what you are asking, but please don’t waste your lovely OS’s time with commands like that. 
Finally when you are referencing data in the processor you use binary to do so and we humans read hexadecimal more easily. In hexadecimal, 1024KiB is 0x400 KiB. 1000 KB is is 0x3E8 KB in hexadecimal.
If you want to use metric, be an engineer. Meanwhile, leave my metrics alone. 1024 bytes is 1 KB. The computer knows this. The programmer knows this. Even web developers use hex. Colors codes are hexadecimal.
Do mechanical engineers want me to redefine 1 meter as 99.53 cm? No, they don’t. Leave your decimal out of my pure binary computer.