ALU演算子(NOT、OR、AND、XOR、ADD、SUB)のみを使用して、8ビットのバイナリ値に対して右シフトを実行する効率的な方法があるかどうか疑問に思いました。
Example:
input: 00110101
output: 10011010
左シフトは2を掛けるのと同じなので、8ビットの2進値を加算するだけで左シフトを実装できました。しかし、右シフトでこれを行う方法は考えられません。
私がこれまでに思いついた唯一の方法は、7つの左バレルシフトを実行することです。これが唯一の方法ですか?