2011-03-08 21 views
17

Me pregunto cómo puedo convertir un Char a un Int. P. ej.Convierte Char a Int

a = '\x2' -- a == 2 
      -- type of a should be Char 
b = charToInt a -- b == 2 
       -- type of b should be Int 

Pero no tengo idea de cómo:/

Gracias de antemano

+9

Descubre y usa [hoogle] (http://www.haskell.org/hoogle/?hoogle=Char+-%3E+Int). –

Respuesta

21

Puede utilizar la función ord para convertir un carácter a su representación entera (ordinal).

chr va en la otra dirección.

> ord '\x2'­ 
    => 2 
> chr 97 
    => 'a' 
> ord (chr 42) 
    => 42 
+19

solo para agregar, tienes que 'importar Char' o' importar Data.Char' para usar esos – newacct

4

Puede utilizar fromEnum o Data.Char.ord.

+0

(fromEnum 'x') - (fromEnum '0') == x – jpredham

+1

@jpredham Tenemos 'digitToInt '9 '' de 'Data.Char' para esa puprose exacta – gvlasov