Arrayinhalt zu Integer

Gast #2751228
Lesenswert?

Moin,
ich sitz vor folgendem Problem:

Ich habe ein Array. Daraus sollen 4 Werte (Buffer[2],[3],[4],[5]) zu 
einem Integer zusammengefasst werden.
In den einzelnen Arrayfeldern befindet sich jeweils nur eine Zahl 
zwischen 0 und 9.
Diese sollen aber nich einfach addiert werden, sondern so wie sie im 
Array stehen, als 16bit INT übernommen werden.

Wie macht man sowas?

Vielen Dank an euch
Gast #2751250
Lesenswert?

Aber in einem einzelnen Arrayfeld steht doch nur ein Byte? Also jeweils 
die Zahl 0-9.

Und ich möchte halt einfach wenn das Array z.B. so aussieht: 
[S][L][3][6][1][9]
Die Zahlen 3,6,1,9 in eine Variable x speichern als 3619.

Vielen Dank schonmal für deine Mühen!
Gast #2751273
Lesenswert?

Du musst uns schon sagen wie dein Array definiert ist. Aus deinem ersten 
Post könnte man leicht auf uint16_t myArray[] schließen.

Ok, also ein Byte Array.

uint16_t myInt;
uint8_t myArray[4];

/*
Array befüllen */

myInt = myArray[0] * 1000 + myArray[1] * 100 + myArray[2] *10 + 
myArray[3];

Sollte passen, falls ich deine Absicht richtig verstanden habe...
Gast #2752052
Lesenswert?

greo schrieb:
> Ich habe ein Array. Daraus sollen 4 Werte (Buffer[2],[3],[4],[5]) zu
> einem Integer zusammengefasst werden.
> In den einzelnen Arrayfeldern befindet sich jeweils nur eine Zahl
> zwischen 0 und 9.

Falls du eine ASCII->Binär Wandlung machen willst, hilft dir atoi() aus 
der avr-libc. Stell aber sicher, dass der String 0-terminiert ist.

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