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
int einer, zehner, bin; einer=zahl%10; zehner=(zahl-einer)/10; bin=(zehner<<4)+einer; lg
IHR SEIT ECHT SPITZE!!!!! sofern es Funktioniert ;P DANKE!
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
müsste dir das helfen #define UBYTE (unsigned char) oder neudeutsch #define UBYTE uint8_t ???
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Joachim B. schrieb:
Das:
1 | |
habe ich verstanden und bereits vom Vorredner übernommen ;) DANKE EUCH! Was ich allerdings nicht richtig verstehe ist:
1 | |
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
Balou Baer schrieb: > was jetzt aber bcd&15 bedeutet verstehe ich nicht, bzw. dieses &15. Der Wert wird mit 00001111 maskiert, d.h. die oberen vier Bits sind anschließend 0000, so dass nur noch der Wert der unteren vier Bits wiedergegeben wird. 100100111 & 00001111 = 00000111 Allerdings ist das Grundlagenwissen bei der (C-)Programmierung...
Danke das mit dem 0xF ^^ wäre in dem Fall wirklich besser gewesen ;)
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.