Forum: Mikrocontroller und Digitale Elektronik ascii to hex


von F. H. (avrfreak)


Lesenswert?

hi,
wie kann i wenn i jetzt zb ein variable
1
char Variable = "A"
diese in Hex/int umwandeln, nach ascii
in ascii wäre das nämlich 0x41

wie wandle i jetzt ein char um?

von mpt (Gast)


Lesenswert?

Soweit ich dich verstanden habe meinst du so etwas:
1
char hugo= static_cast<char>(i);

von Dr. Sommer (Gast)


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.

von help (Gast)


Lesenswert?


von F. H. (avrfreak)


Lesenswert?

atoi wandelt doch nur Zahlen in einem String zu Integer um soweit ich 
weis

von Karl H. (kbuchegg)


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.

: Bearbeitet durch User
von Mark B. (markbrandis)


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

: Bearbeitet durch User
von help (Gast)


Lesenswert?


von F. H. (avrfreak)


Lesenswert?

Vielen Dank Mark Brandis
Aber wie kann ich jetzt damit vergleichen...
1
char Variable = 'A';
2
int i = 65
3
4
if(Variable == i) /???

Okay sry
bin ich blöd
gib mir die Lösung selbst und hab sie die ganze zeit vor meiner Nase

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.