Инициализация битовой маски
Изучаю битовые операции и столкнулся со следующей задачей: Дано целое число(int) и n-й разряд. Необходимо инициализировать переменную-маску с 1 в старшем и n-м бите и применить ее к заданному числу.
Как установить 1 в n-м бите я разобрался: x = x | (1<<n), а вот как быть со старшем битом не совсем понимаю в силу недостатка знаний.
Собственно мой вопрос заключается в том, как инициализировать переменную-маску с 1 в старшем бите.
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
В старшем бите:
unsigned int mask = 1u << (sizeof(unsigned int)*8-1);
В старшем бите и n-м:
unsigned int mask = 1u << (sizeof(unsigned int)*8-1);
mask |= 1u << n;