Zwei vorzeichenlose(unsigned) Binärzahlen subtrahieren?
A und B sind vorzeichenlos (unsigned). Es soll A - B gerechnet werden
Von B wurde das Zweierkomplement gebildet und dann die Zahlen addiert für die Subtraktion.
Soweit Rechenweg klar. Allerdings sind beide Zahlen wie bereits angegeben vorzeichenlos (unsigned).
Heißt das jetzt das das Ergebnis der Subtraktion falsch ist?
11101011 (vorzeichenlos) ist dezimal 235 würde im 8-Bit Bereich liegen
=> hier kein Carry und auch kein Overflow
11101011 (signed) wäre -21 was das richtige Ergebnis wäre, allerdings sind die Zahlen ja unsigned
1 Antwort
modulo 256 ist -21 in derselben Restklasse wie 235... das Ergebnis ist also so gesehen korrekt...
wenn du erwartest, dass bei A<B die Subtraktion A-B ein nicht negatives Ergebnis hat, dann stimmt mit deinen Erwartungen etwas nicht... unsigned kennt eben keine negativen Werte... also der Wertebereich passt nicht zu deinen Erwartungen von „richtiges Ergebnis“...