(This article was first published on

**DataDebrief**, and kindly contributed to R-bloggers)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

To

**leave a comment**for the author, please follow the link and comment on their blog:**DataDebrief**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...