Maison  >  Article  >  développement back-end  >  Comment pouvez-vous définir, effacer et vérifier des bits individuels dans Go à l'aide d'opérations au niveau des bits ?

Comment pouvez-vous définir, effacer et vérifier des bits individuels dans Go à l'aide d'opérations au niveau des bits ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-10 03:43:02848parcourir

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

Manipulation de bits dans Go : définition et effacement de bits individuels

Dans Go, la manipulation de bits individuels dans un entier peut être une technique utile pour divers candidatures. Une façon d'y parvenir consiste à effectuer des opérations au niveau du bit.

Définition d'un bit

Pour définir le bit à une position spécifique, vous pouvez utiliser la fonction suivante :

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

Cette fonction fonctionne en décalant le chiffre 1 vers la gauche de la position spécifiée (pos) à l'aide du bouton << opérateur. Cela crée un masque qui active le bit correspondant. Lorsque vous OU (|) ce masque avec l'entier d'origine, le bit cible est mis à 1 tout en préservant les autres bits.

Effacer un bit

Pour effacer un bit à une position spécifique, vous pouvez utiliser la fonction suivante :

func clearBit(n int, pos uint) int {
    mask := ^(1 << pos)
    n &= mask
    return n
}

Cette fonction crée un masque en inversant le bit à la position cible à l'aide de l'opérateur ^. Le masque résultant a effectivement le bit cible défini sur 0. Lorsque vous AND (&) ce masque avec l'entier d'origine, le bit cible est effacé tandis que les autres bits restent inchangés.

Vérifier si un bit est défini

Enfin, vous pouvez vérifier si un bit est défini à l'aide de la fonction suivante :

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

Cette fonction effectue une opération ET entre l'entier et un masque qui a le bit correspondant défini sur 1. Si le résultat est supérieur à 0, cela indique que le bit cible est défini et la fonction renvoie vrai. Sinon, il renvoie false.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn