mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik inhalt von 2 vaiablen in eine übertragen


Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

habe zwei integer zahlen in zwei variablen, jeweils einstellig. ist es
möglich diese beiden einzelnenzahlen, i eine variable zu bringen.so
dass ich anstatt zwei variablen habe, in der z.b. die zahlen 1 und 2
sind dann eine variable habe,inder eine 12 ist?


gruß
Markus

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher ist das möglich. Jedes Bit in einem Byte kann eine andere
Bedeutung haben. Wenn Du zwei "numerische Variablen" in einem Byte
(Char) unterbringen willst, dann kannst Du sie z.B. nibbleweise
organisieren, die eine nutzt das obere Nibble (4 Bit), die andere das
untere Nibble. Somit hat jede der beiden Variablen den Wertevorrat von
0 bis 15. Die Variable im unteren Nibble hat den korrekten Wert, die im
oberen Nibble hat den 16-fachen Wert. Durch Ausmaskieren (bitweises AND)
kann man die gewünschten Bits isolieren. Durch Bitschieben um 4 Stellen
(Multiplikation/Division mit/durch 16) erreicht man die Verschiebung
des Nibbles nach oben und zurück, mit der bitweisen OR-Verknüpfung
fasst man beide Nibbles zusammen.

...

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wow,na dann schaue ich mal, wie ich es anders lösen kann. für den anfang
vielleicht doch ne stufe zu schwer.

Autor: Läubi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stelle1= 1
Stelle2= 2

Zahl = Stelle1 * 10 + Stelle2

:)

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Zahl = Stelle1 * 10 + Stelle2

Im Prinzip richtig, aber wenn mann "*10" durch "*16" ersetzt, dann
ist auch der Rückweg ohne Division (oder Subtraktion in Schleife)
möglich. Dann kann man nämlich mit schnellerem Maskieren und
Bitschieben arbeiten.

...

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mhhh, scheint zu funktionieren. warum bin ich da nicht selbst drauf
gekommen? vielen dank.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.