ascii to hex

Gast #3463638
Lesenswert?

Such erstmal die Fehler in deinem Code. Dann überleg dir, wie der 
Computer Buchstaben speichert, und ob man da überhaupt sinnvoll 
irgendwas "umwandeln" kann. Oder ob das bloß eine Frage der Ein/Ausgabe 
ist. Und welche Google Suchbegriffe man dafür benutzen könnte.
#3463677
Lesenswert?

mal den Syntaxfehler ignoriert:

Du hast bereits in Variable den Wert 0x41 stehen.

Ob diese 0x41 als 0x41 ausgegeben werden, oder als 'A', oder als 
0b01000001, oder als dezimale 65 ist eine reine Frage dessen, wie man 
ausgibt.

Im Speicher im Computer gibt es NUR Zahlen. Und sonst nichts. Alles ist 
eine Zahl.
Und einige Ausgabegeräte ordnen diesen Zahlen bestimmte Pixelhaufen zu, 
die sie anzeigen. Meistens gemäss ASCII Tabelle. Schickt man so einem 
Ausgabegerät ein Byte mit dem Bitmuster 01000001, dann zeigt es einen 
Pixelhaufen an, den dein Gehirn als 'A' wieder erkennt. Aber weder 
Computer noch Terminal haben irgendeine Vorstellung davon, was ein 'A' 
ist.

nach
1
char c = 'A';
2
     c = 0x41;
3
     c = 65;
4
     c = 0b01000001;

steht in c jedesmal das gleiche Bitmuster drinnen. Nämlich das Bitmuster 
01000001.
#3463678
Lesenswert?

Womöglich braucht es gar keine Umwandlung. Ein char ist ja bereits eine 
vorzeichenbehaftete Variable, welche Werte zwischen -128 und +127 
annehmen kann. Also kann man zum Beispiel Folgendes machen:

1
#include <stdio.h>
2
#include <stdlib.h>
3

4
int main()
5
{
6
    char Variable = 'A';
7
    
8
    printf("Variable als char: %c\n", Variable);
9
    printf("Variable als Zahl: %d\n", Variable);
10
    printf("Variable als Hex : %x\n", Variable);
11
    
12
    return 0;
13
}

Variable als char: A
Variable als Zahl: 65
Variable als Hex : 41

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren