Wie wandelt man eine negative Dezimalzahl in eine Binärzahl um ? Also bei postiven Zahlen sieht es ja so aus Bsp.: Zahl 42 42/2=21 Rest 0 21/2=10 Rest 1 10/2=5 Rest 0 Binärzahl: 1 0 1 0 1 0 5/2=2 Rest 1 2/2=1 Rest 0 1/2=0 Rest 1 Wie würde die Binärzahl bei -42 aussehen ?
Gast
#6599810
Zweierkomplement. https://de.wikipedia.org/wiki/Zweierkomplement
Gast
#6599814
Mit dem 2er-Komplement.
1. Schritt : Alle Stellen invertieren
2. Schritt : 1 addieren
Binärzahl : 00101010 (42)
Invertiert: 11010101
1 addieren: 1
--------
Ergebnis : 11010110 (-42)
Wichtig: Das linke Bit ist immer das Vorzeichen und hat keinen
Stellenwert.
Gast
#6599818
GeraldB schrieb: > Wichtig: Das linke Bit ist immer das Vorzeichen und hat keinen > Stellenwert. ... oder den Stellenwert -128, siehe mein Link zu Wikipedia.
Gast
#6599825
https://de.wikipedia.org/wiki/Zweierkomplement man könnte die binäre 42 Umwandeln in ihre "negative" Entsprechung im Zweierkomplement. Sämtliche Stellen werden umgekehrt, bzw. negiert und dann noch eine 1 draufaddiert. Das wäre dann erstmal - ausgehend von dem Binärformat 8-Bit 00101010 11010101 bzw. nach +1 11010110
Gast
#6599853
HildeK schrieb: > GeraldB schrieb: >> Wichtig: Das linke Bit ist immer das Vorzeichen und hat keinen >> Stellenwert. > > ... oder den Stellenwert -128, siehe mein Link zu Wikipedia. Nicht oder (im üblichen Sprachgebrauch), sondern Exclusiv-Oder. Entweder repräsentiert es das Vorzeichen oder (alternativ-oder!) den Stellenwert 2^7=128. Das erste ist der Fall, wenn der Ausgangswert negativ ist, das zweite ist der Fall, nachdem man den negativen Ausgangswert in die nicht vorzeichenbehaftete Darstellung umgewandelt hat. Lustigerweise passiert im Fall von -128 nämlich in der binären Repräsentation dabei rein garnix, die ist vor und nach der Wandlung gleichermaßen 0b10000000.
Gast
#6599909
HildeK schrieb: > ... oder den Stellenwert -128, siehe mein Link zu Wikipedia. Das kommt drauf an, ob es sich um eine 8Bit Zahl handelt oder nicht. Bei einer 16Bit Zahl hätte das linke Bit alternativ eher den Wert -1*2^(16-1) ;-)
Gast
#6599957
man könnte es etwas entschärfter formulieren, bei hexadezimalzahlen, falls sie ein Vorzeichen bekommen/ negativ sind haben die mindestens eine 8 vorne (8-f). Mit Vorzeichen in den negativen Bereich shiften, ist auch sehr interessant, sollte man sich, falls noch nicht gesehen, unbedingt mal irgendwo ansehen. Die hexadezimalen Entsprechungen der beiden Zahlenausdrücke oben sind 2A und D6.
rbx schrieb: > Mit Vorzeichen in den negativen Bereich shiften, ist auch sehr > interessant, sollte man sich, Man kann logisch (dann kommt eine 0 rein) oder arithmetisch (dann wird das Vorzeichenbit genommen) nach rechts schieben. Im C-Standard ist nicht definiert was genommen wird , auch wenn man meint, das hängt von signed/unsigned Typen ab. Kann es, muss es aber nicht.
Gast
#6600007
> Wie wandelt man eine negative Dezimalzahl in eine Binärzahl um ?
Indem man den Betrag von 0 abzieht und nach der gewünschten Anzahl
Stellen abbricht:
1 | |
2 | |
3 | |
4 | |
(Ergibt das 2er-Komplement, 0-x <=> ~x+1 (mod 2^N))
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.