2016-11-09 6 views
1

Wie konvertiert man Variable unsigned char mit HEX-Wert zu Variable int mit DEC-Wert. Ich habe:unsigned char hex zu int dec umwandlung C++

unsigned char length_hex = 0x30; // HEX 

Wie zu int DEC konvertieren?

+0

Mögliche Duplikat [? Warum sind hexadezimale Zahlen mit vorangestelltem 0x] (http://stackoverflow.com/questions/2670639/why-are-hexadecimal-numbers-prefixed-with-0x) – Nikita

+0

Hexadezimal und dezimal sind nur, wie Sie die Zahlen anzeigen. Es ist sowieso alles binär gespeichert. Und nein, du brauchst keine Konvertierung, es ist alles "automatisch". Versuchen Sie einfach 'length_hex' als' unsigned int' auszudrucken und sehen Sie sich das Ergebnis an (z. B. 'std :: cout << static_cast (length_hex)') –

+1

Sie haben also Ihre eigene Frage in der letzten Zeile beantwortet? :) –

Antwort

0

Da einige Leute kommentiert haben, ist die Konvertierung automatisch. Versuchen:

int main (void) 
{ 
    unsigned char length_hex = 0x30; 
    printf("0x30 is char:%c and int:%d.",length_hex,length_hex); 
    return 0; 
} 

und sieht, was man bekommt - wenn man es auf ein char konvertiert es ‚0‘ ist (das Zeichen 0) und als int es 48. Auch dann, wenn es nicht wirklich wichtig, wenn ich die sparen Konstante 0x30 als int oder char. Schauen Sie einfach auf:

printf("0x30 is char:%c and int:%d.",0x30,0x30); 
+0

' 0x30' im ASCII-Code ist genau char '' 0'' Ich kann den Punkt nicht bekommen! Also ich erwarte '0x30 ist char 0 und int ist 48' –

+0

Korrekt, was ist Ihre Frage? Ich zeige nur die Konvertierung ist automatisch auf Int und Char jeweils. – kabanus