2009-05-10 20 views

Respuesta

21
char c; 
int ascii = (int) c; 
s2.data[j]=(char)count; 

un char es un número entero, sin necesidad de funciones de conversión.

Tal vez esté buscando funciones que muestren enteros como una cadena, ¿utilizando representaciones hexadecimales, binarias o decimales?

3

Si desea obtener el valor ASCII de un carácter en el código, sólo hay que poner el carácter entre comillas

char c = 'a'; 
7

Usted no necesita una función para obtener el valor ASCII - acaba de convertir en una por un número entero (implícita) reparto:

int x = 'A'; // x = 65 
int y = '\t'; // x = 9 

para convertir un número en hexadecimal o decimal, puede utilizar cualquiera de los miembros de la familia printf:

char buffer[32]; // make sure this is big enough! 
sprintf(buffer, "%d", 12345); // decimal: buffer is assigned "12345" 
sprintf(buffer, "%x", 12345); // hex: buffer is assigned "3039" 

No hay una función incorporada para convertir a binario; Tendrás que hacer tu propio.

2

Puede confundir la representación interna con la salida. Para ver qué valor tiene un personaje:

char c = 'A'; 
cout << c << " has code " << int(c) << endl; 

Del mismo modo fo valuwes hexagonales - todos los números son números hexadecimales, por lo que es sólo una cuestión de salida:

int n = 42; 
cout << n << " in hex is " << hex << n << endl; 

El "hex" en el estado de salida es un manipulador de C++. Hay manipuladores para hexadecimales y decimales (dec), pero desafortunadamente no para binarios.

0

En cuanto al hexadecimal & binario - esas son solo representaciones de enteros. Lo que probablemente desee es algo como printf ("% d", n) e printf ("% x", n): el primero imprime el decimal, el segundo la versión hexadecimal del mismo número. Aclare lo que está tratando de hacer:

Cuestiones relacionadas