Computerarithmetik
Was ergibt sich, wenn −8 (1111 1000) als vorzeichenbehaftete 8-Bit-Ganzzahl mit arithmetischem Rechtsshift um 1 Bit nach rechts geschoben wird?
- A124 (0111 1100)
- B−16 (1111 0000)
- C−4 (1111 1100)
Antwort und Erläuterung anzeigen
Antwort: C. −4 (1111 1100)
Beim arithmetischen Rechtsshift wird das Vorzeichenbit in das frei werdende höchste Bit kopiert, sodass aus 1111 1000 die Folge 1111 1100 wird, im Zweierkomplement −4. Auch bei negativen Zahlen entspricht eine Verschiebung um 1 Bit nach rechts der Division durch 2. Beim logischen Rechtsshift, der oben eine 0 einfügt, ergäbe sich 0111 1100 = 124, und das Vorzeichen änderte sich. −16 wäre das Ergebnis einer Verschiebung um 1 Bit nach links. Zu beachten ist, dass es in C der Implementierung überlassen war, welches Verhalten ein Rechtsshift vorzeichenbehafteter Ganzzahlen hat.