ビット演算で次と前の偶数を決定しようとしています。
たとえば、次の関数の場合:
x nextEven(x)
1 2
2 2
3 4
4 4
前の場合:
x previousEven(x)
1 0
2 2
3 2
4 4
nextEven
私は次のような関数のアイデアを持っていました:value = ((value+1)>>1)<<1;
そして、次のpreviousEven
ような関数の場合:value = ((value)>>1)<<1
値が偶数か奇数かを比較して確認することなく、より良いアプローチはありますか?
ありがとうございました。