Dezimalzahl zerlegen zwei BIN Zahlen zu einer Dezimalzahl

#3832000
Lesenswert?

Hallo alle zusammen,

ich möchte gern eine Dezimalzahl (z.B. 12 ) in zwei 4 Bit Zahlen 
umrechnen. aber jetzt nicht das es so aussieht 00001100 = 12. Sondern:

zehner Stellen | einer Stellen
Dez          1 | 2
Bin       0001 | 0010

Zahl 65
Dez          6 | 5
Bin       0110 | 0101

und das ganze wieder zurück. Sprich, es werden 8 Bit ausgelesen und die 
ersten 4 Bits sind 10er und die letzten 4 Bits sind 1er stellen.

Wie könnte man das Softwaretechnisch realisieren?

Ich bedanke mich für eure Mühen und verbleibe

mit freundlichen Grüßen

Balou Baer
#3832005
Lesenswert?

#3832653
Lesenswert?

Noch eine Frage,

wie kann ich die Zahlen Maskieren?

Sprich, wenn die zehner nur zwischen 0 und 2 liegen kann und die einer 
zwischen 0 und 9?



einer=zahl%10;
zehner=(zahl-einer)/10;

einer &= 9;
zehner &= 2;

bin=(zehner<<4)+einer;

geht das so????


Danke für euere Hilfe

Mit freundlichen Grüßen

Balou Baer
#3832794
Lesenswert?

Joachim B. schrieb:

Das:
1
 return ((UBYTE)(((integer/10)<<4)+(integer%10)));

habe ich verstanden und bereits vom Vorredner übernommen ;) DANKE EUCH!


Was ich allerdings nicht richtig verstehe ist:
1
 return ((UBYTE)(((bcd>>4)*10)+(bcd&15)));

bsp: 00100101

bcd>>10 -> verschiebe bcd 4 Bits nach rechts (aus 0010 | 0101 wird 0000 
| 0010) richtig?
0010 entspricht der zahl 2 und diese wird mit 10 multipliziert was dann 
20 macht.
soweit richtig?

was jetzt aber bcd&15 bedeutet verstehe ich nicht, bzw. dieses &15. 
Vielleicht könntest du mir das noch einmal erklären.

Ich bedanke mich für deine Mühe und verbleibe

Mit freundlichen Grüßen

Balou Baer

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