Best Practices für zirkuläre Verschiebungs- (Rotations-)Operationen in C++
Posted: 03 Jan 2025, 10:38
Linke und rechte Verschiebungsoperatoren (>) sind in C++ bereits verfügbar.
Ich konnte jedoch nicht herausfinden, wie ich zirkuläre Verschiebungs- oder Rotationsoperationen durchführen kann.
Wie können Operationen wie „Nach links drehen“ und „Nach rechts drehen“ ausgeführt werden?
Hier zweimal nach rechts drehen
sollte Folgendes ergeben:
Ein Beispiel wäre hilfreich.
(Anmerkung des Herausgebers: Viele gängige Arten, Drehungen in C auszudrücken, leiden darunter undefiniertes Verhalten, wenn die Rotationsanzahl Null ist oder in mehr als nur eine einzelne Rotationsmaschinenanweisung kompiliert wird. Die Antwort auf diese Frage sollte Best Practices dokumentieren.)
Ich konnte jedoch nicht herausfinden, wie ich zirkuläre Verschiebungs- oder Rotationsoperationen durchführen kann.
Wie können Operationen wie „Nach links drehen“ und „Nach rechts drehen“ ausgeführt werden?
Hier zweimal nach rechts drehen
Code: Select all
Initial --> 1000 0011 0100 0010
Code: Select all
Final --> 1010 0000 1101 0000
(Anmerkung des Herausgebers: Viele gängige Arten, Drehungen in C auszudrücken, leiden darunter undefiniertes Verhalten, wenn die Rotationsanzahl Null ist oder in mehr als nur eine einzelne Rotationsmaschinenanweisung kompiliert wird. Die Antwort auf diese Frage sollte Best Practices dokumentieren.)