Forum: Compiler & IDEs int to char ? Geht das?


von flyingwolf (Gast)


Lesenswert?

Hi
Ich habe 7 kleine Zählerwerte von denen keiner größer als 100 ist, wenn 
ich ihn übertragen will. Bis dahin können sie aber schnell auch mal 
20000 werden, darum sind sie als int definiert. Zur Übertragung ggf. per 
CAN wäre es aber sehr viel einfacher, wenn ich aus den int chars machen 
könnte. Beim CAN würden dann alle in eine einzige Nachricht passen. Aber 
wie wandelt man ein 2byte int in ein 1byte char um, ohne das der 
Compiler meckert?

von Kai R. (k2r)


Lesenswert?

Wenn Du gewährleisten kannst, daß die resultierenden Werte nicht größer 
als 255 werden, geht das:

int a;
unsigned char b;

b = (unsigned char) a;


Nennt sich "casten"......

von pumpkin (Gast)


Lesenswert?

1
unsigned int var = 0xABCD;
2
3
unsigned char upper = 0x00;
4
unsigned char lower = 0x00;
5
6
upper = var / 0x100;    //ist jetzt 0xAB
7
lower = var % 0x100;    //ist jetzt 0xCD



pumpkin

von flyingwolf (Gast)


Lesenswert?

oh ja, mit unsigned char scheint es tatsächlich zu funktionieren.
Danke.

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.