- "The digits 0–9 were arranged so they correspond to values in binary prefixed with 011, making conversion with binary-coded decimal straightforward."
- "The letter "A" was placed in position 0x41 to match the draft of the corresponding British standard."
The 1963 standard (linked from the article, and below[1]) does a reasonable job of describing the design rationale in the appendices.
“B4.2 Base 12 Numeric Digits. For those applications requiring use of the sterling monetary system or duodecimal arithmetic, the digits 10 and 11 can replace the two graphics immediately following the digit 9.”
To be fair, traditionally there weren't a lot of events where you needed to figure out the number of farthings in a pound. I also read somewhere that loans were generally set at 5% (one shilling interest per pound loaned) because working out any other number was a pain in the neck. No idea of the date or veracity of that little nugget though.
I always thought the guinea was particularly funny, given that it doesn't really add much in the way of demarcation.
There's a well-documented reason for the placement of (nearly) every single character in ASCII. Unfortunately, not all of the reasons are still very compelling. In fact, a distressingly large number of them have to do with the various techniques for encoding bytes on punch cards.
For the curious, I recommend the book "Coded Character Sets: History and Development" by Charles E. Mackenzie. It's an older book, and so it's about the pre-Unicode, US-centric codes. Also, most of the pages focus on the many variants of EBCDIC rather than the stabler ASCII standard. But I guarantee that it will give you a lot of historical perspective.
Amazon's information is incorrect. According to WorldCat and Google Books, the book is 513 pages, not 650. Also, its copyright date should be 1980, not 1979.
It's not that ASCII is a disaster. It the refusal to default to larger encodings for so long after it became obviously useful (that is as soon as computers stopped being one offs).
Bob Bemer, often cited as the "Father of ASCII", proposed escape sequences to extend ASCII to handle larger encodings in 1960, pre-standardization. http://www.bobbemer.com/ESCAPE.HTM
What else would you use? The only sane format for storing text is unicode, and unicode is a superset of ASCII. Unicode also is an enormous undertaking so don't be impatient about it.
Go ahead and complain about the proliferation of 8-bit extensions of ASCII, but that's not a problem with ASCII itself.
Because then you could never encode real works of literature that use esoteric or non-standard grammar. Good luck encoding Huckleberry Finn with your system.
On the other hand, encoding smaller units reliably (phonemes, graphemes, whatever is appropriate) and using compression over top of that usually gets you really close to what you wanted, but with greater expressiveness. English text compresses really fantastically well, so why overthink it?
38 comments
[ 2.0 ms ] story [ 62.5 ms ] thread- "The digits 0–9 were arranged so they correspond to values in binary prefixed with 011, making conversion with binary-coded decimal straightforward."
- "The letter "A" was placed in position 0x41 to match the draft of the corresponding British standard."
(Source: wikipedia.)
“B4.2 Base 12 Numeric Digits. For those applications requiring use of the sterling monetary system or duodecimal arithmetic, the digits 10 and 11 can replace the two graphics immediately following the digit 9.”
[1] http://www.wps.com/projects/codes/X3.4-1963/index.html
4 farthings = 1 penny
48 farthings = 1 shilling
960 farthings = £1
There were farthings, half-pennies, pennies, threepences, sixpences, shillings, florins, and half-crowns.
I guess we're lucky in only having to fiddle around with dates in awkward formats.
And that thing that isn't the metric system.
I always thought the guinea was particularly funny, given that it doesn't really add much in the way of demarcation.
For the curious, I recommend the book "Coded Character Sets: History and Development" by Charles E. Mackenzie. It's an older book, and so it's about the pre-Unicode, US-centric codes. Also, most of the pages focus on the many variants of EBCDIC rather than the stabler ASCII standard. But I guarantee that it will give you a lot of historical perspective.
(I had forgotten until now that the Linux and BSD versions of this man page are so differently laid out! I was running Linux at the time.)
Isn't programming always in some language other than English?
Go ahead and complain about the proliferation of 8-bit extensions of ASCII, but that's not a problem with ASCII itself.
I once put a lot of time to gather a very short list of the most used english words.
Why not encode a phrase with its grammar ?
On the other hand, encoding smaller units reliably (phonemes, graphemes, whatever is appropriate) and using compression over top of that usually gets you really close to what you wanted, but with greater expressiveness. English text compresses really fantastically well, so why overthink it?