要するに、 のような 2 進数の数値を扱っていて0000 0110
、最後の 3 ビットだけを逆にしたい場合、これを に変換する方法はあります0000 0011
か?
reverse bits method
が実装されているが、整数を反転して返す (つまり0110 0000
、 ではない)という他の質問やリソースを見てきました0000 0011
。
標準的な方法で行われるように、それを逆にして、必要なだけシフトするだけで十分でしょうか? または、これを達成するためのより直接的な方法はありますか?
フォーマット:unsigned int reverse_select_bits(int number, int num_bits) { ... }