2


1

整数の「6番目のビットをクリアする」最良の方法は何ですか?

整数の「6番目のビットをクリアする」最良の方法は何ですか?

また、ソリューションプラットフォームは独立していますか? (32または64ビット整数など)。 そうでない場合、プラットフォームに依存しないソリューションを提供できますか?

*更新:*与えられたときにそのビットが設定されているか設定解除されているかはわかりません…​ また、どの言語でも大丈夫です…​ 私は2人のオペレーターを必要とするプラットフォームに依存しないソリューションを知っています…​ さまざまな方法や簡単なソリューションがあるかもしれません。

*更新:*より明確に:インターガーの6番目の最下位ビットをクリアします。

4 Answer


10


x&(〜(1 << 6))


5


x&=〜(1 << 5)


0


おそらくこれはcで?

value&~(1<<6)


-2


既に設定されていることが確実な場合は、64を減算します。

更新:テストの追加

if((x % 128) / 64 > 0)
  x -= 64;

私が今見ている限り、これはプラットフォームや言語サポートについて何も仮定していません。