Esiste una funzione che restituisce il valore ASCII di un carattere? (C ++)
Domanda
Ho bisogno di una funzione che restituisca il valore ASCII di un personaggio, inclusi spazi, tabulazioni, newline, ecc ...
In una nota simile, qual è la funzione che converte tra numeri esadecimali, decimali e binari?
Soluzione
char c;
int ascii = (int) c;
s2.data[j]=(char)count;
Un carattere è un numero intero, non sono necessarie funzioni di conversione.
Forse stai cercando funzioni che visualizzano numeri interi come una stringa - usando rappresentazioni esadecimali, binarie o decimali?
Altri suggerimenti
Non è necessaria una funzione per ottenere il valore ASCII: è sufficiente convertirlo in un numero intero con un cast (implicito):
int x = 'A'; // x = 65
int y = '\t'; // x = 9
Per convertire un numero in esadecimale o decimale, puoi utilizzare uno qualsiasi dei membri della printf
famiglia:
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"
Non esiste una funzione integrata da convertire in binario; dovrai farlo da solo.
Se vuoi ottenere il valore ASCII di un carattere nel tuo codice, inserisci il carattere tra virgolette
char c = 'a';
Potresti confondere la rappresentazione interna con l'output. Per vedere quale valore ha un personaggio:
char c = 'A';
cout << c << " has code " << int(c) << endl;
Allo stesso modo per valori esadecimali: tutti i numeri sono numeri esadecimali, quindi è solo una questione di output:
int n = 42;
cout << n << " in hex is " << hex << n << endl;
Il " hex " nell'istruzione output è un manipolatore C ++. Esistono manipolatori per esadecimale e decimale (dec), ma sfortunatamente non per binario.
Per quanto riguarda l'amp esadecimale & amp; binario: sono solo rappresentazioni di numeri interi. Quello che probabilmente vuoi è qualcosa di simile a printf (& Quot;% d & Quot;, n) e printf (& Quot;% x & Quot;, n): il primo stampa il decimale, la seconda la versione esadecimale dello stesso numero. Chiarisci cosa stai cercando di fare -