«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как можно устанавливать, очищать и проверять отдельные биты в Go с помощью побитовых операций?

Как можно устанавливать, очищать и проверять отдельные биты в Go с помощью побитовых операций?

Опубликовано 9 ноября 2024 г.
Просматривать:291

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

Битовые манипуляции в Go: установка и очистка отдельных битов

В Go манипулирование отдельными битами внутри целого числа может быть полезным методом для различных приложения. Один из способов добиться этого — побитовые операции.

Установка бита

Чтобы установить бит в определенную позицию, вы можете использовать следующую функцию:

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

Эта функция сдвигает число 1 влево на указанную позицию (pos) с помощью оператора

Очистка бита

Чтобы очистить бит бит в определенной позиции, вы можете использовать следующую функцию:

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

Эта функция создает маску, инвертируя бит в целевой позиции с помощью оператора ^. В результирующей маске целевой бит фактически установлен на 0. Когда вы выполняете И (&) эту маску с исходным целым числом, целевой бит очищается, а другие биты остаются незатронутыми.

Проверка наличия бита is Set

Наконец, вы можете проверить, установлен ли бит, используя следующую функцию:

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

Эта функция выполняет операцию И между целым числом и маской, для которой соответствующий бит установлен в 1. Если результат больше 0, это указывает на то, что целевой бит установлен, и функция возвращает true . В противном случае возвращается false.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3