Каковы лучшие методы «Очистить 6-й бит» целого числа? - PullRequest
2 голосов
/ 27 марта 2010

Каковы лучшие методы «Очистить 6-й бит» целого числа?

А ваша платформа решений независима? (32- или 64-разрядное целое число и т. Д.). Если нет, можете ли вы дать решение, которое не зависит от платформы?

Обновление: мы не знаем, установлен этот бит или не установлен, когда он был дан ... также, любой язык в порядке ... я знаю решение, которое не зависит от платформы и требует 2 оператора ... может быть, есть разные методы или более простые решения.

Обновление: более четко: очистить 6-й младший значащий бит интергера.

Ответы [ 4 ]

10 голосов
/ 27 марта 2010

x & (~(1 << 6))

5 голосов
/ 27 марта 2010

x&= ~(1 << 5)

0 голосов
/ 27 марта 2010

Возможно, это в с?

value&~(1<<6)
0 голосов
/ 27 марта 2010

Если вы уверены, что оно уже установлено, просто вычтите 64.

Обновление: добавление теста

if((x % 128) / 64 > 0)
  x -= 64;

Насколько я сейчас вижу, здесь нет никаких предположений относительно платформы или языковой поддержки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...