char in unsinedchar wandeln

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_tsollte 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.