Wie wird unsigned int / long dargestellt
-
24-09-2019 - |
Frage
Ich lese einige Montag Tutorial, in dem es wurde die signierten ganzen Zahlen und die ganzen Zahlen ohne Vorzeichen und den Unterschied zwischen ihrer Darstellung in einem Computerspeicher erläutert.
Ich erinnere mich, so etwas wie, dass es einige am Anfang etwas an der Zahl war so sagt er, ob die ganze Zahl ohne Vorzeichen ist oder unterzeichnet.
Wenn jemand es weiß, bitte beantworten.
Lösung
Wikipedia Seite auf Signed Zahlendarstellung zeigt die gängigsten Speicherimplementierungen sowohl mit und ohne Vorzeichen integer-Werte.
Zwei-Komplement die häufigste Darstellung ist.
Andere Tipps
Es gibt viele mögliche Darstellungen von Zahlen mit Vorzeichen sind, ist die häufigste Zweier-Komplement.
Das MSB bestimmt nicht, ob die Zahl signiert ist; in Zahlen mit Vorzeichen repräsentiert, ob die Zahl negativ ist. In Zahlen ohne Vorzeichen ist es nur das MSB. Es ist das Programm, das mit oder ohne Vorzeichen wird eine Reihe betrachtet stellt fest, ob.
hehe. Schwierige Frage. mit und ohne Vorzeichen ganze Zahlen sind genau die gleichen dargestellt. im Speicher sucht, werden Sie nie in der Lage sein, sie zu unterscheiden. es kommt der Grundsatz des Von-Neumann eines aus. Also, wo ist der Unterschied? Der Unterschied ist in der Art, wie sie interpretiert werden. Wenn Variable Befehle Compiler verwendet unterzeichnet für signierte Ints. Auch wenn wir wissen, dass Nummer signiert ist es erste Bit uns Zeichen Es ist erzählt. die Umwandlung wird als ~i + 1
(c Syntax) erfolgt in beiden Richtungen
Es gibt viele mögliche Darstellungen, die jeweils abhängig von Ihrem Organisation des Computers. Die bekanntesten sind
Auf beiden Darstellungen können Sie den ersten (höchstwertige) Bit testen, um herauszufinden, ob die Zahl positiv ist (in der Regel aus) oder negativ (Bit auf). Das heißt, wenn Sie die Nummer als unterzeichnet zu behandeln. Wenn Sie den Compiler sagen solche Zahlen als unsigned zu behandeln, wird das Vorzeichen-Bit als Daten verwendet (was die maximale verdoppelt Bereich für den Datentyp).