noch ne noob-frage...



  • Hi. Ich wollt mal wissen, obs ne einfache Möglichkeit gibt, rauszukriegen, welchen Hexwert ein aus ner Datei gelesenes Byte hat (ohne jedes Bit einzeln testen zu müssen...).

    Vielen Dank schonmal,
    der FloBo^^



  • Ein Byte hat immer denselben Wert. Hex oder dezimal ist nur die Darstellung. Insofern brauchst du nichts "rauszukriegen". Wenn du den Wert in hex ausgeben willst, nimm printf mit %x.

    Übrigens: "noch ne noob-frage... " ist nicht so toll als Threadtitel.



  • Mein Problem ist im Moment: ich hab mit fgetc aus ner Datei ein Byte ausgelesen und in nem Char abgespeichert. Jetzt würd ich gerne mit dem Hexwert, der dahinter steht wie mit nem integer weiterrechnen...
    aber casten geht ja scheinbar nicht. wenn ich

    int xyz = (int)char1;
    printf("%i",xyz);
    

    eintipp, krieg ich als output -1... was nicht stimmt. es sollte eigentlich die Zahl 8 sein (da mein ausgelesenes Byte so aussieht 0000 1000).

    Das mit dem Titel is halt so, weil ich mir bei so simplen Dingen immer wie ein Idiot vorkomm, wenn ich solche Fragen poste...



  • Rechnen kannst du auch direkt mit dem char, der Cast ist unnötig. Wenn du allerdings bei diesem Code -1 herausbekommst, dann stand mit Sicherheit nicht 8 in dem char.



  • Aaaalso.
    Ich hab da jetzt mal n bisschen rumprobiert. Ich hab jetzt einen Char, dem ich verscheidene Werte zuordnen kann (im Programm holt er sich die Daten aus ner Datei...). Solange der Wert des Chars <= x7F (also 127) ist, wird er mir bei der Anweisung printf("%i",ch); richtig ausgespuckt. Wenn er aber x80 oder größer wird, interpretiert das der compiler wie bei nem signed Int und spuckt negative Zahlen aus... xFF wird dann also als -1 ausgegeben...

    Hat jemand ne Ahnung, wie ich die Werte richtig ausgeben kann, so dass die Zahlen über x7F nicht negativ ausgegeben werden?


Anmelden zum Antworten