"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment pouvez-vous définir, effacer et vérifier des bits individuels dans Go à l’aide d’opérations au niveau du bit ?

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

Publié le 2024-11-09
Parcourir:219

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 

Cette fonction fonctionne en décalant le chiffre 1 vers la gauche de la position spécifiée (pos) à l'aide de l'opérateur

Effacer un bit

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

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

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 is Set

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  0
}

Cette fonction effectue une opération ET entre l'entier et un masque dont le bit correspondant est 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.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3