Hallo,
wie kann ich eine Char-Varable zB mit dem Wert -34 entspricht 1101 1100 oder 0xDC
in eine Unsigned Char umwandeln die dann auch den Wert 0xDC hat.
Danke
Hallo,
wie kann ich eine Char-Varable zB mit dem Wert -34 entspricht 1101 1100 oder 0xDC
in eine Unsigned Char umwandeln die dann auch den Wert 0xDC hat.
Danke
Ich weiß es nicht sicher, aber hast Du byte(x) probiert? Kannst Du die Variable eventuell gleich als byte oder uint8_t anlegen?
Danke
Byte hatte ich getestet - ging nicht.
Aber uint8_t geht.
Danke
Ein char mit anderem Inhalt als Zeichen ist eigentlich schon mal ein Design Fehler. Kannst Du mal den Code zeigen, der mit byte nicht funktioniert hat?
Hallo,
ich verstehe die Frage ehrlich gesagt nicht wirklich.
Der Datentyp char hat einen Wertebereich von -128 bis 127.
Der Datentyp unsigned char hat einen Wertebereich von 0 bis 255.
Man kann keine negativen Werte in ein unsigned char werfen.
Man könnte das Zweierkomplement bilden. Aber damit verändert man die eigentliche Zahl.
Ich meine -10 ist nun einmal ungleich +10.
Deshalb solltest du uns wirklich sagen was du eigentlich machen möchtest und wofür.
Du willst nichts umwandeln, nur als unsigned byte (0 .. 255) behandeln.
char c = 0xDC;
byte b = c;
Serial.println(b, BIN); // liefert 11011100
Byte hatte ich getestet - ging nicht.
Aber uint8_t geht.
byte
unduint8_t
sollte eigentlich dasselbe sein. Aber Serial.print könnte evtl. anders reagieren.
Mit "geht nicht" machst du dich übrigens eher unbeliebt.
Kann sein dass es nicht das macht, was du dir vorstellst, aber das hängt davon ab was du dir vorstellst, und es ist auch interessant zu erzählen, was es stattdessen macht.