C variablen zusammensetzen

Gast #4291410
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
Gast #4291429
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
Gast #4291462
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
Gast #4291480
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.