Inspired by this question on ASCII, I have wondered similar things about EBCDIC.
At work we have an EBCDIC file that gets sent to a mainframe (I presume an IBM one) and to view it on my laptop I needed to run a command to convert it. dd if=blah.ebcdic conv=ascii > blah.txt
Before I found that command I took a peek at the code page to see if I could whip something up myself.
Like ASCII you can shift a bit to get from lowercase to uppercase (0x8_
to 0xc_
is one bit different). However, the cases are not contiguous themselves. The low bits 0x_a
to 0x_f
are skipped. Is there a reason?
Also like ASCII, the numbers' low bits match the number they represent.