Ich habe Subtraktion auf zwei vorzeichenbehaftete 16-Bit-Hexadezimalzahlen. C352 - 36AE. Was ist der Unterschied zwischen signiert und unsigniert, wenn es darum geht, Mathe mit ihnen zu machen? Ist die einzige Lösung, die sie in Binärwerte umwandelt, die Subtraktion mit Vorzeichen ausführt und dann die Antwort zurück in Hex konvertiert? Vielen Dank.Signed Hex Subtraktion vs unsigned
Antwort
Die Subtraktion ist für beide Zeichen gleich und ohne Vorzeichen. Was anders ist, ist wie die Ergebnisse interpretiert werden. Vorzeichenlose Zahlen können niemals negativ sein:
0xffff ist -1 signiert. 0xffff ist 65.535 unsigniert.
Es ist die gleiche Nummer.
Das Ergebnis einer 16-Bit oder ohne Vorzeichen Subtraktion ist immer 16 Bits (das Ergebnis der bitweisen Subtraktion ist) plus ein 17 Bit mit dem 17-Bit entweder die Überlaufbit (signed Subtraktion) oder dem Wesen Übertrags-Bit (vorzeichenlose Subtraktion). Wenn Sie nur ein 16-Bit-Ergebnis haben, haben Sie eine bitweise Subtraktion NICHT eine vorzeichenbehaftete oder vorzeichenlose 16-Bit-Subtraktion. Anstatt eine vorzeichenbehaftete, vorzeichenlose oder bitweise Subtraktion anzugeben, erzeugen viele Systeme alle drei Ergebnisse gleichzeitig. Sie verwenden später das Überlauf-Bit, wenn Sie eine vorzeichenbehaftete Subtraktion beabsichtigten, das Übertrag-Bit, wenn Sie eine Subtraktion ohne Vorzeichen haben wollten, oder keines für eine bitweise Subtraktion. Beachten Sie, dass viele Leute nicht auf das 17. Bit schauen, weil sie aus dem Bereich der Eingänge wissen, dass sie keine echte 16-Bit-Subtraktion benötigen. Zum Beispiel, wenn ich eine Zahl subtrahiere, von der ich weiß, dass sie zwischen 0-100 liegt, von einer Zahl, von der ich weiß, dass sie zwischen 1000-2000 liegt, brauche ich keine echte 16 Bit Subtraktion, also muss ich nicht auf das 17. Bit schauen . Anmerkung: Überlauf und Übertrag werden durch verschiedene Regeln abgeleitet und sind NICHT die gleichen, aber der Unterschied zwischen den beiden wurde bereits an anderer Stelle erläutert, so dass ich diese Antwort hier nicht kopieren werde.
Wenn es sich um vorzeichenbehaftete Zahlen handelt, müssen Sie nichts Besonderes tun. –
Ah ja, tut mir leid, sie sind Zweierkomplement. Wenn man also zwei Komplemente annimmt, wäre die Subtraktion als Vorzeichen die gleiche Antwort wie unsigned? – rfmas3
Haben Sie es versucht? –