Ein Character in Delphi ist nach dem Ascii oder Ansii Zeichensatz codiert egal wie, wenn der Binäre Wert des Char 2 ist ist das irgendein sehr merkwürdiges Sonderzeichen. Die Ziffern 1-9 beginnen in der Ascii Tabelle bei $30, wobei das $ nur signalisiert, dass die eingegebene Zahl hexadezimal ist, das heißt im konkreten Fall 3*16=48, dass heißt du könntest auch 48 hinterschreiben dann aber ohne $.
Um die Tabellenplätze bestimmter Zeichen zu finden empfiehlt sich ord().
Da ein char = 1 byte ist hat die ascii Tabell maximal 256 einträge, da 11111111b = $FF = 255 . +1 wegen der Null
siehe auch widechar.