"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como você pode definir, limpar e verificar bits individuais em Go usando operações bit a bit?

Como você pode definir, limpar e verificar bits individuais em Go usando operações bit a bit?

Publicado em 2024-11-09
Navegar:596

How can you set, clear, and check individual bits in Go using bitwise operations?

Manipulação de bits no Go: configuração e limpeza de bits individuais

No Go, a manipulação de bits individuais dentro de um número inteiro pode ser uma técnica útil para vários aplicações. Uma maneira de conseguir isso é através de operações bit a bit.

Definindo um bit

Para definir o bit em uma posição específica, você pode usar a seguinte função:

func setBit(n int, pos uint) int {
    n |= (1 

Esta função opera deslocando o número 1 para a esquerda pela posição especificada (pos) usando o operador

Limpando um Bit

Para limpar um Bit bit em uma posição específica, você pode usar a seguinte função:

func clearBit(n int, pos uint) int {
    mask := ^(1 

Esta função cria uma máscara invertendo o bit na posição alvo usando o operador ^. A máscara resultante efetivamente tem o bit de destino definido como 0. Quando você aplica AND (&) a esta máscara com o número inteiro original, o bit de destino é limpo enquanto os outros bits permanecem inalterados.

Verificando se um bit is Set

Finalmente, você pode verificar se um bit está definido usando a seguinte função:

func hasBit(n int, pos uint) bool {
    val := n & (1  0
}

Esta função executa uma operação AND entre o inteiro e uma máscara que tem o bit correspondente definido como 1. Se o resultado for maior que 0, indica que o bit de destino está definido e a função retorna verdadeiro . Caso contrário, retorna falso.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3