Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Technische Informatik (http://www.informatikerboard.de/board/board.php?boardid=7)
--- Arithmetische Verschiebung (http://www.informatikerboard.de/board/thread.php?threadid=4115)


Geschrieben von Henry am 01.02.2019 um 20:54:

  Arithmetische Verschiebung

Meine Frage:
Hallo,

ich habe eine Problem mit einer Aufgabe. Ich soll die Zahl 7286 im Dezimalsystem um 2-Stellen arithmetisch nach rechts verschieben. Am Ende soll die Zahl 9972 rauskommen, falls die Lösung stimmt. Meine Frage ist, wie man auf das Ergebnis kommt.

Meine Ideen:
Ich habe es mit der Definition aus Wikipedia ausprobiert, die Aufgabe zu lösen. Und mein Ergebnis war 0072, wie wenn man es logisch verschiebt.



Geschrieben von as_string am 03.02.2019 um 18:46:

 

Hallo!

Also ich kenne das ja nur im Binär-System, deshalb ist mir es auch nicht ganz klar, allerdings geht es da wahrscheinlich um die Darstellung von negativen Zahlen.
Wenn Du binär einen arithetischen rechts-Shift machst, dann kopierst Du das bisher linke Bit auf die frei gewordene linke Position. wenn Du also 1010 hast, hast Du nach einem logischen Shift 0101, aber nach einem arithmetischen 1101, weil eben eine 1 "nachgeschoben" wurde, weil vorher schon eine 1 ganz links stand. Wenn man es mit vorzeichenbehafteten Zahlen zu tun hat, ist das ja das Vorzeichen-Bit und das soll erhalten bleiben, daher kommt das.
Die Frage für mich ist jetzt, wie man das auf das Dezimal-System erweitern soll. So wie ich das sehe, scheint hier die Logik gewesen zu sein: Steht ganz links eine Ziffer mit einem Wert größer 5, dann schiebe eine 9 nach, sonst eine 0. So oder so ähnlich... Keine Ahnung.

Gruß
Marco


Forensoftware: Burning Board, entwickelt von WoltLab GmbH