Go でのビット操作: 個々のビットの設定とクリア
Go では、整数内の個々のビットを操作することは、さまざまな用途に役立つテクニックとなります。アプリケーション。これを実現する 1 つの方法は、ビット単位の演算を使用することです。
ビットの設定
特定の位置にビットを設定するには、次の関数を使用できます。
func setBit(n int, pos uint) int { n |= (1 << pos) return n }
この関数は、<< を使用して、数値 1 を指定された位置 (pos) だけ左にシフトすることによって動作します。オペレーター。これにより、対応するビットを有効にするマスクが作成されます。このマスクと元の整数の OR (|) を実行すると、他のビットを維持しながらターゲット ビットが 1 に設定されます。
ビットのクリア
ビットをクリアするには特定の位置のビットを指定するには、次の関数を使用できます。
func clearBit(n int, pos uint) int { mask := ^(1 << pos) n &= mask return n }
この関数は、次の方法でマスクを作成します。 ^ 演算子を使用してターゲット位置のビットを反転します。結果のマスクでは、事実上、ターゲット ビットが 0 に設定されます。このマスクと元の整数の AND (&) を実行すると、ターゲット ビットはクリアされますが、他のビットは影響を受けません。
ビットのチェックis Set
最後に、次を使用してビットが設定されているかどうかを確認できますfunction:
func hasBit(n int, pos uint) bool { val := n & (1 << pos) return val > 0 }
この関数は、整数と、対応するビットが 1 に設定されているマスクの間で AND 演算を実行します。結果が 0 より大きい場合は、ターゲット ビットが設定されていることを示します。関数は true を返します。それ以外の場合は false を返します。
以上がGo でビットごとの操作を使用して個々のビットを設定、クリア、チェックするにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。