Maison > développement back-end > Golang > 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
Libérer: 2024-11-10 03:43:02
original
854 Les gens l'ont consulté

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
}
Copier après la connexion

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
}
Copier après la connexion

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
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal