Я пытаюсь найти лучший способ для генерации следующей битовой маски: - Для заданного входа n выходной будет битовая маска, в которой установлены первые (n-1) биты, а все остальные биты не установлены.
Пример:
if n = 1, output = 0x00000001 = 00000000000000000000000000000001
if n = 2, output = 0x00000003 = 00000000000000000000000000000011
if n = 3, output = 0x00000007 = 00000000000000000000000000000111
Я знаю об очевидном итеративном способе (установка битов по одному), который бы занимал O (n) времени ... Мне просто интересно, есть ли какая-нибудь "магия битов", которая может сделать это в постоянное время или, по крайней мере, сублинейное время (без использования LUT !!)
Есть ли кто-нибудь?