1101 0110 dual in dezimalwert, (Lösung ist nicht 214 sondern 42)?
hi, bin gerade am lernen für die berufsschule man soll folgende vorzeichenbehaftete 8bit dualzahl in eine dezimal wert umwandeln. ich weis das man invertieren muss. aber ab dem Punkt komme ich nicht weiter. Die lösung ist 42 aber wie man auf die Lösung kommt weis ich nicht. vielen dank
3 Antworten
Moin, die Zahl ist im Zweierkomplement. Dort ist die Lösung -42.
Darstellung der positiven Dezimalzahl 42 in Binärform:
- 42 = 0010 1010
Invertiere alle Bits (0 wird zu 1 und 1 wird zu 0):
- Invertiert: 1101 0101
Füge 1 zum invertierten Wert hinzu:
- 1101 0101 + 1 = 1101 0110
Damit hast du dann deine Dezimalzahl. Das - muss dir beim Abschreiben verloren gegangen sein.
Man könnte auch andersherum rechnen und die Dualzahl in eine Dezimalzahl umwandeln:
MSB Bit 1? Ja, also ist die Zahl negativ. Dann:
101 0110 = 86
(2^7) - 86 = 42
(Anmerkung: (2^7)-1 ist der höchste Wert, der mit 7 Bit darstellbar ist.)
Das ist dann eine Zahl im Zweierkomplement. Da das linke Bit 1 ist, ist die Zahl auf jeden Fall negativ.
Jetzt wandelst du die Zahl in eine positive Zahl um: alle Bits negieren: 00101001
Eins addieren, dann erhälst du 00101010 und das entspricht der 42 dezimal.
kannst du mir erklären warum 1101 0101 + 1 1101 0110 ergibt, das verstehe ich nicht ganz den rest habe ich verstanden