2011-01-25 25 views

Respuesta

14

Un simple int a = c; donde c es un char debería funcionar.

+4

no funcionará para los códigos ANSI por encima de 127, a menos que se utiliza algún tipo de opción de compilador . 'int a = (unsigned char) c;' estaría más cerca de Ord(). –

+0

@Sergey, nunca se mencionó la palabra ANSI en la pregunta, solo ASCII. Y ASCII está limitado a 0..127. En cualquier caso, la norma ISO no ordena si 'char' está firmado o no. – paxdiablo

+1

@paxdiablo, pero se mencionó a Ord(). Y Ord() admite caracteres por encima de 127. Y el molde debe usarse exactamente porque el estándar no garantiza que el carácter no esté firmado, mientras que la mayoría de las implementaciones están firmadas por defecto. Pero es mejor usar Unicode de todos modos. –

7

Un char tiene el valor ASCII.

Si lo prefiere, puede convertirlo en un número entero.

+1

En otras palabras, 'A' _es_ 65. –

+1

excepto que el C++ estándar no requiere ASCII – sellibitze

3

Typecast it utilizando ascii = (int)character.

2
char c = 'a'; 
printf("%d", c); 

esto haría ...

si necesita utilizar el valor ASCII para operaciones numéricas, utilice

char c = 'a'; 
int i = (int)c; 
1

¿qué tal

#include <ctype.h> 

int LOrdValue = __toascii('a'); 
0

se puede hacer

char a ='A'; 
int b = a&0b11111111; 

esto debe dar 65

Cuestiones relacionadas