Frage

Ich arbeite an meinem HW für Computerarchitektur und bin auf das folgende Problem gestoßen:

A = 247
B = 237

1) Angenommen, A und B sind 8-Bit-Ganzzahlen, die im Two-Komplementformat gespeichert sind. Berechnen Sie A + B unter Verwendung der Sättigungsarithmetik. Das Ergebnis sollte dezimal geschrieben werden. Zeigen Sie Ihre Arbeit.
2) Angenommen, A und B sind 8 -Bit -Ganzzahlen im zweitkunden -Format von Twos Sorted. Berechnen Sie A - B mithilfe der Sättigungsarithmetik.

Wie sind diese überhaupt gültige Fragen? Ich weiß, was die Sättigung von Arithmetik ist, aber wie ist es gültig zu sagen, dass a 247 und B 237 ist, wenn sie nicht durch eine Komplementnummer einer 8-Bit-Zwei dargestellt werden können?

Mir ist klar, dass der Punkt der gesättigten Arithmetik im Fall eines Überlaufs/Unterlaufs darin besteht, alle Bits auf den extremen Wert zu setzen, aber es ist für mich nicht sinnvoll, eine Reihe von Fragen zu stellen (es gibt 3 weitere mit demselben Problem) Einbeziehung der Zahlenarithmetik, die nicht in dem von ihnen angegebenen Format dargestellt werden können.

Habe ich hier falsch?

War es hilfreich?

Lösung

Die einzige Interpretation, die Sinn macht, ist, dass die angegebenen Werte die sind ohne Vorzeichen Interpretation der fraglichen Zahl; Werte von mehr als 127 sind offensichtlich außerhalb des Bereichs für einen 8-Bit-Signed Twos-Complement-Wert. Ich stimme jedoch zu, dass die Frage jedoch schlecht angegeben ist.

Andere Tipps

Ich weiß es nicht, aber es könnte Fragen Sie: "Konvertieren Sie die Dezimalzahl 237 in eine 8-Bit-Ganzzahl. Interpretieren Sie nun diese Bits als 8-Bit-2-Komplementgleger und fügen Sie sie hinzu."

Ein bisschen wie sagen, in C:

char a = 237;
printf("%x %d\n",a, a);

Was Ihnen Werte kompiliert und gibt, die Sie erwarten würden, basierend auf der Komplementinterpretation des 8-Bit-Werts "237" der beiden der beiden

Sieht für mich falsch aus. 8-Bit signierte zwei Komplementzahlen von Two können zwischen -128 und 127 liegen. Jeder Versuch, einem 8-Bit-Signal-Complement-Variablen von 237 oder 247 eine konstante 237 oder 247 zuzuweisen, sollte je nach Sprache zu einem Fehler führen.

Wenn das Problem "annehmen würde, dass A und B in einer 8 -Bit -Ganzzahl gespeichert sind", wäre es sinnvoll. Das Speichern von a = 247 in einem signierten 8 -Bit -Ganzzahl ergibt einen Wert von -9 und speichert B = 237 einen Wert von -19. Ansonsten macht es keinen Sinn. Eine signierte 8 -Bit -Ganzzahl kann keinen Wert von 247 oder 237 haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top