TIP: Click on subject to list as thread! ANSI
echo: os2
to: Jack Stein
from: Jonathan de Boyne Pollard
date: 1999-09-11 00:30:03
subject: Kib, Mib, gib: 1024^n ?

 JDBP>> The basic idea runs as follows:  The metric prefixes
 JDBP>> "kilo-", "mega-", "giga-", "tera-" and so forth represent
 JDBP>> powers of 10.  For powers of 2 one adds "binary", producing
 JDBP>> "kilobinary-", "megabinary-", "gigabinary-", "terabinary-",
 JDBP>> and so forth.  These are then shortened to "kibi-", "mebi-",
 JDBP>> "gibi-", and "tebi-", and the abbreviations for them are
 JDBP>> "Ki", "Me", "Gi", and "Te".
 JDBP>>
 JDBP>> I've been trying the terms on "for size" for the past few
 JDBP>> months, and I quite like them.  My FITSIZE utility (part of
 JDBP>> OS2CLU version 2.0) already supports "kB"/"MB"/"GB" for
 JDBP>> powers of 10 and "KiB"/"MeB"/"GiB" for powers of 2.   

 JS> I like k,m and g for the small ones, K,M, and G for the big ones...
 JS>
 JS> Whats so tough about that?

Two things:  It redefines existing abbreviations in a non-standard way that
*no-one* else uses, and it's unworkable because it's wrong in any case.

The SI abbreviations for the prefixes for powers of 10 have definite cases. 
"kilo-" is abbreviated to lowercase 'k', but "mega-" and "giga-" are
abbreviated to uppercase 'M' and 'G'.  In the SI system lower case 'm' is
actually "milli-", whereas the above scheme would redefine it to be "mega-" -- 
a significant change in meaning (a factor of 10 to the power 9).  The existing 
power of 10 abbreviations also already use four out of those six letters,
leaving just 'K' and 'g', so there aren't enough letters to go around to make
use of the case symmetry.

I used a similar scheme in early versions of FITSIZE, with 'k', 'M', and 'G'
for the powers of 10, and 'K', 'm', and 'g' for the powers of 2.  (I
rationalised re-using the SI 'm' abbreviation for the binary prefix by noting
that there's no such thing as a "millibyte".)  But as a command-line interface 
it was not very intuitive.  For one thing, it is case-sensitive, whereas
option and command line processing is generally case-insensitive.  For
another, it was always difficult to remember which case meant what, both when
reading a command line and when typing a new command.

Changing FITSIZE to follow the IEEE/IEC proposed standard resulted in two
immediate gains.  First, the processing can now be case-insensitive like all
other option processing.  It doesn't matter if someone mistypes the
abbreviation for "kilo-" as uppercase 'K' (a mistake that is unfortunately all 
too common).  Second, it is easier to distinguish when reading, and to
remember when typing, one set of abbreviations from the other.  Irrespective
of case, the one-letter abbreviations are the powers of 10 and the two-letter
abbreviations are the powers of 2.

 ¯ JdeBP ®

--- FleetStreet 1.22 NR
114/441
* Origin: JdeBP's point, using Squish (2:257/609.3)

SOURCE: echoes via The OS/2 BBS

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.