Forum: PC-Programmierung C variablen zusammensetzen


von Umbrecht (Gast)


Lesenswert?

Guten Tag,

suche seit längeren eine möglichkeit aus drei Variablen eine einzige zu 
kreieren.

Dazu muss man sich dass ganze so vorstellen.. Ich habe drei 8bit 
Variablen:

uint8_t var0 = 4;
uint8_t var1 = 9;
uint8_t var2 = 1;

Diese drei Ziffern möchte ich nun zu einer Variable zusammengefasst 
haben:

uint16_t all = 491;

Ich wähle eine 16bit variable da mit dem maximal Wert "999" die 16 bit 
nicht überschreitet werden können.

Leider habe ich dazu nichts gefunden, brauche es aber später im AVR 
technischen. Ich hoffe Ihr könnt mir hierbei helfen ^^ .

Grüße
Umbrecht

von Peter II (Gast)


Lesenswert?

Umbrecht schrieb:
> Leider habe ich dazu nichts gefunden,

in der schule nicht aufgepasst?

uint16_t all = var0 * 100 + var1 * 10 + var2;

von Umbrecht (Gast)


Lesenswert?

Peter II schrieb:
> in der schule nicht aufgepasst?

bin noch mitten drin :D

danke ^^

von Amateur (Gast)


Lesenswert?

Natürlich kannst Du eine Variable aufteilen. Bist Du Dir aber sicher, 
dass die Ausgangsvariablen mitspielen, sprich sich an den möglichen 
Wertebereich halten?

Eine 8-Bit Variable lässt sich z.B. in 2 + 3 + 3 Bit aufteilen.
2 Bit reichen für 0 ... 3
3 Bit reichen für 0 ... 7

Reichen diese Bereiche - kein Problem. Da das Verpacken und Entpacken 
recht aufwändig ist, ist die Anwendbarkeit sehr eingeschränkt.

Eine 16-Bit Zahl könnte in 5 + 5 + 6 Bit separiert werden.
5 Bit reichen für 0 ... 31
6 Bit reichen für 0 ... 63

von Dieter (Gast)


Lesenswert?

Oder nach Horner-Schema:
(((var0 * 10) + var1) *10) + var2

von Umbrecht (Gast)


Lesenswert?

Amateur schrieb:
> Natürlich kannst Du eine Variable aufteilen. Bist Du Dir aber sicher,
> dass die Ausgangsvariablen mitspielen, sprich sich an den möglichen
> Wertebereich halten?

Hört sich sehr umständlich an, ist aber mit der 16bit option auch eine 
möglichkeit - danke :)


Dieter schrieb:
> Oder nach Horner-Schema:
> (((var0 * 10) + var1) *10) + var2


oder so. thx :D

von Amateur (Gast)


Lesenswert?

>Oder nach Horner-Schema:
>(((var0 * 10) + var1) *10) + var2

Das hier gezeigte Horner-Schema ist nur sinnvoll, auf Basis von 
Dezimalstellen.

Eine "natürliche" 8-Bit Zahl ist nur für 2 Stellen nutzbar.

2 X 4 Bit reichen von 0 bis 9 (bzw. 00 bis 99) oder von 0 ... F.

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.