2 の補数表現では、減算と「ゼロ未満の場合分岐」のみを使用して、ビット チェックを実装することになっています。これらの 2 つの命令で実装されていない限り、単純な論理演算は許可されません。
b(n-1) b(n-2) ... b(i) ... b(2) b(1) b(0)
したがって、(i) が n ビット数の i 番目のビットを示すような整数 x があるとしましょう。
結果を与える x から減算する数値 y を見つけたい:
- b(i) = 1 の場合、xy >= 0
- b(i) = 0 の場合 xy < 0
私はここ数日頭を悩ませてきましたが、最後の結果として、いくつかのアイデア/ヒントを求めてここに来ました。