Frage von mcchecker1000, 17

Was für eine Zahlenreihenfolge ist -6 im Dualenzahlensystem?

Hallo, Kann mir jemadn sagen ob -6 im Dezimalenzahlensystem 1000 ist oder 1001. Ich persönlich komme auf die Zahl 1000 aber andere aus meiner Klasse kommen auf die Zahl 1001. Was davon ist jetzt richtig?

Antwort
von PWolff, 17

Einer- oder Zweierkomplement?

Im Einerkomplement nimmt man die Binärdarstellung der zugehörigen positiven Zahl und invertiert jedes Bit einzeln. Das entspricht für 6 mit 4 Binärstellen 1001.

Im Zweierkomplement addiert man noch 1 zum Ergebnis (wobei ein eventueller Übertrag unberücksichtigt bleibt). Das entspricht für 6 mit 4 Binärstellen 1010.

Das Zweierkomplement hat den Vorteil, dass es am leichtesten technisch umsetzbar ist (Computer).

Kommentar von mcchecker1000 ,

Zweierkomplement
Kannst du mir mal den Rechenweg dazu schicken?

Kommentar von PWolff ,

Im Internet habe ich diese Seite gefunden:

http://www.ulthryvasse.de/negative-binaere-zahlen.html

Rechenweg:

1. Binärkomplement bilden

2. 1 dazu zählen

Im Beispiel -6:

+6 = 0110 (bin)

Binärkomplement(0110) = 1001

1001 (bin) + 1 (bin) = 1010 (bin)

(außer für 0 geht es natürlich auch andersrum: erst 1 abziehen, dann das Binärkomplement bilden)

-----

Alternativ:

Eine 1 mit so vielen Nullen dahinter hinschreiben, wie man Binärstellen haben will. Bei 4 Stellen also

10000

Davon dann die Zahl abziehen, von der man die Gegenzahl haben will. Bei -6 mit 4 Stellen also

  10000
- 0110
-------
111
-------
01010

Dann die Binärziffer ganz links streichen. Hier ergibt das wieder die bekannte 1010.

-----

Zum technischen Hintergrund:

Wenn wir einfach so tun, als könnten wir uns von beliebig hohen Stellen immer noch einen Übertrag "borgen", oder wenn wir den Übertrag einfach weglassen, wenn wir die verfügbare Stellenanzahl überschreiten, können wir in dieser Darstellung einfach immer weiter 1 abziehen, um zur nächstniedrigeren Zahl zu kommen:

Dezimal    Binär mit Zweierkomplement
2 0000 0010
1 0000 0001
0 0000 0000
-1 1111 1111 (hier "vernachlässigen" wir den Übertrag)
-2 1111 1110
-3 1111 1101
usw.
Antwort
von hypergerd, 6

Unter https://de.wikipedia.org/wiki/Zweierkomplement  

ist alles beschrieben und mit der Calc.exe

(die auf jedem WinPC ist)

kann man das Ergebnis überprüfen.

Und: nur 4 Bin-Stellen ist untypisch. Wenigstens 8 sollte man schon angeben

-6 = 11111010 bin (signed byte)

, da 1010 ohne weitere Angaben im Dezimalen 10 ist.

Ich kenne keinen Computer, der mit einen kleineren Variablentyp als byte arbeitet! Selbst bool-Variablen werden intern mindestens als byte 

(bei vielen INT, also bei 64 Bit 63 verschenkte Bits) abgelegt.

In Worten:

Negiere alle Bits und add 1 dazu

Keine passende Antwort gefunden?

Fragen Sie die Community