Re: Получить число вида 0b101010101..
От: watchmaker  
Дата: 19.10.18 14:18
Оценка: 12 (1)
Здравствуйте, vsb, Вы писали:

vsb>Если есть задача получить число вида 0b11111 например с 5-ю единицами, т.е. на входе 5, на выходе 0b11111 = 31, это легко сделать формулой (1 << 5) — 1 (или 2^5 — 1). Можно ли придумать похожую простую формулу, если нужно "полосатое" число с чередующимися битами,


(1 << (n + 1)) / 3


А если размер числа ограничен чем-то естественным, например длиной регистра, то лучше будет работать банальный подход навроде такого:
0xAAAAAAAA >> (32 - n)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.