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!