Wednesday, March 9, 2011

Ascii code table in R

A quick method to enumerate the printable ascii characters with their hex & decimal values.

The following code relies on taking the "raw" value of a base 10 int (this gives a hex value), and then using the builtin function rawToChar, which gives a character. You can of course change the range (up to 255). Not sure and haven't tested, but for UTF-8, may need ?Encoding (such as enc2utf8(x))

To use as a function that can accept an ascii character and return the decimal value, something like this:
asc <- function(x) { strtoi(charToRaw(x),16L) }

asc("a")
[1] 97
 
To use as a function to return the ascii character given it's decimal code value, try something like this:
chr <- function(n) { rawToChar(as.raw(n)) }

chr(asc("a")) # 97
[1] "a"
 
To print the ascii table (for 32:126), try something like this:
coderange = c(32:126)
asciitable_printable = data.frame(
 coderange,
 as.raw(coderange),
 row.names=rawToChar(as.raw(coderange),multiple=TRUE)
)

colnames(asciitable_printable) <- c("dec","hex")
asciitable_printable
 
Results
    dec hex
    32  20
!   33  21
"   34  22
#   35  23
$   36  24
%   37  25
&   38  26
'   39  27
(   40  28
)   41  29
*   42  2a
+   43  2b
,   44  2c
-   45  2d
.   46  2e
/   47  2f
0   48  30
1   49  31
2   50  32
3   51  33
4   52  34
5   53  35
6   54  36
7   55  37
8   56  38
9   57  39
:   58  3a
;   59  3b
<   60  3c
=   61  3d
>   62  3e
?   63  3f
@   64  40
A   65  41
B   66  42
C   67  43
D   68  44
E   69  45
F   70  46
G   71  47
H   72  48
I   73  49
J   74  4a
K   75  4b
L   76  4c
M   77  4d
N   78  4e
O   79  4f
P   80  50
Q   81  51
R   82  52
S   83  53
T   84  54
U   85  55
V   86  56
W   87  57
X   88  58
Y   89  59
Z   90  5a
[   91  5b
\\  92  5c
]   93  5d
^   94  5e
_   95  5f
`   96  60
a   97  61
b   98  62
c   99  63
d  100  64
e  101  65
f  102  66
g  103  67
h  104  68
i  105  69
j  106  6a
k  107  6b
l  108  6c
m  109  6d
n  110  6e
o  111  6f
p  112  70
q  113  71
r  114  72
s  115  73
t  116  74
u  117  75
v  118  76
w  119  77
x  120  78
y  121  79
z  122  7a
{  123  7b
|  124  7c
}  125  7d
~  126  7e
 

9 comments:

  1. Thank you! useful functions to add into my bat utility belt!!

    ReplyDelete
  2. Wow... thanks for amazing function. I have also found html ascii code table on http://htmlascii.codes site.

    ReplyDelete
  3. Really Nice Information,Thank You Very Much For Sharing.
    Web Development Company

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. ikitelli çilingir istanbul ikitellide yetkili kapı oto kasa açan kilit değiştiren 24 saat çalışan gece gündüz faliyetde bulunan tek çilingir firması http://www.ikitellicilingir.com

    ReplyDelete
  6. halkalı çilingir istanbul halkalı da yetkili kapı oto kasa açan kilit değiştiren 24 saat çalışan gece gündüz faliyetde bulunan tek çilingir firması http://www.halkalicilingir.com

    ReplyDelete
  7. zengin çilingir http://www.zengincilingir.com

    ReplyDelete