Int in Array zerlegen

Gast #2398498
Lesenswert?

Moin Moin,
ich versuche gerade ein Integer in zwei Bytes zu zerlegen.. aber 
irgendwie funktioniert das nur mit Zahlen kleiner 255. Warum ist das so, 
und gibt es dafür eine Lösung?

1
typedef union MyVal{
2
unsigned int valInt;
3
unsigned char buffVal[CAN_DATA_LENGTH];
4

5
}GetMyVal;
6

7
GetMyVal SetMyVal;
8

9
unsigned int Value=260;
10
unsigned char Buff[2];
11

12

13
SetMyVal.valInt=Value;
14

15
Buff[0]=SetVal.buffVal[0];
16
Buff[1]=SetVal.buffVal[1];

Viele Grüße
Gast #2398701
Lesenswert?

unions sind für sowas überhaupt nicht gedacht. Dazu kommt, daß int 32 
Bit breit ist und nicht 16. Gehen müßte es aber trotzdem. Bei mir kommt 
wie erwartet für Buf[0] 4 raus und für Buf[1] 1.

Praktikant schrieb:
> Da kommt immer das gleiche heraus, egal auf welche Art ich das mache.

Was kommt denn raus?

> Habe es gerade noch mit memcpy versucht.. same shit. -.-

Kannst du mal ein kurzes, aber komplettes Programm zeigen, wo du das 
Problem hast?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren