Zahlensystem-Umrechner und Zweierkomplement

Ihre Daten

Ein vorangestelltes 0b, 0o oder 0x wird akzeptiert und ignoriert, ebenso Leerzeichen und Unterstriche zwischen den Ziffern.

Ergebnisse

Was diese Bits wert sind, gelesen nach Ihrer Wahl

Genau dieselben Bits, anders gelesen
Binär
Hexadezimal
Oktal
Alles, was in diese Breite passt

Es negieren, Schritt für Schritt

Von den Bits ausgehen
Alle umkehren
Eins addieren, und das ist die negative Zahl
Was ergibt

Die Bits umzukehren und eins zu addieren ist dasselbe wie von zwei hoch der Breite abzuziehen, und das wurde an allen zweihundertsechsundfünfzig Mustern von acht Bit geprüft. Zweimal angewandt kommt immer der Ausgangswert heraus, und das ist die Eigenschaft, auf der das ganze Verfahren beruht.

Diese Seite rechnet mit ganzen Zahlen beliebiger Größe statt mit der üblichen Gleitkommadarstellung, denn ab etwa neun Billiarden überspringt der gewöhnliche Typ Werte: zwei hoch dreiundfünfzig plus eins kommt als zwei hoch dreiundfünfzig heraus. Bei vierundsechzig Bit gäbe das stillschweigend falsche Antworten.

Reaktionen

0

0 Kommentare

User profile image

Sei der erste der kommentiert

Warum kommt 200 als minus 56 heraus?

Weil 200 und minus 56 dieselben acht Bits sind: 11001000. Nichts in diesen Bits sagt, welches von beiden Sie meinten. Breite und Lesart werden anderswo festgelegt, von dem, der das Programm geschrieben hat, und die Bits passen zu beiden Antworten.

Der ganze Unterschied ist das linkeste Bit. Solange es aus ist, stimmen beide Lesarten genau überein, und deshalb bleibt die Abweichung unsichtbar, bis ein Wert die Hälfte überschreitet.

Warum reicht der Bereich von minus 128 bis 127 und nicht von minus 127 bis 127?

Weil die Null irgendwo wohnen muss, und sie wohnt auf der positiven Seite. Acht Bit ergeben 256 verschiedene Muster; eines geht für die Null drauf, 255 bleiben zu verteilen. Die Aufteilung ist 127 positive und 128 negative, die negative Seite bekommt also eines mehr.

Das ist bei jeder Breite gleich: 16 Bit reichen von minus 32768 bis 32767 und 64 Bit von minus 9223372036854775808 bis 9223372036854775807.

Gibt es eine Zahl ohne Gegenzahl?

Ja, genau eine pro Breite: die negativste. Minus 128 hat bei acht Bit keinen positiven Zwilling, denn 128 bräuchte einen Platz, den die positive Seite nicht hat.

Kehren Sie die Bits von 10000000 um, und Sie erhalten 01111111; addieren Sie eins, und Sie sind wieder bei 10000000. Das Negieren gibt dieselbe Zahl zurück. Diese Seite zeigt das, statt es zu verstecken, und die Eigenschaft wurde bei 8, 16, 32 und 64 Bit geprüft.

Was passiert, wenn die Zahl nicht passt?

Sie läuft über und beginnt von vorn, und diese Seite zeigt das, statt es abzulehnen. 300 in acht Bit zu schreiben speichert 44, und minus 129 zu schreiben speichert 127.

Das ist nicht Nachsicht der Seite, sondern das, was die Hardware tut. Eine Fehlermeldung würde genau das Verhalten verbergen, das den Fehler verursacht, den Sie vermutlich verstehen wollen.