Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2012, 17:26   #11
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

(1<<i+1) - какая-то степень двойки
Цитата:
....0001000
....0010000
....0100000
....1000000
................
Вычтем единицу (1<<i+1) - 1
Цитата:
....0000111
....0001111
....0011111
....0111111
..01111111
Но нам надо не полную последовательность единиц, а всего триаду (..0111000).
Тогда из полной последовательности вычтем другую последовательность единиц
Цитата:
- (1<<i-2)-1
Представленную другой степенью двойки меньшей на три двоичных порядка.

По сути можно оптимизировать дальше
заменив выражение на 7<<(i-2)

Последний раз редактировалось EUGY; 09.05.2012 в 17:46.
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
замена битов в числе Вечный_студент Помощь студентам 11 08.05.2012 00:21
Сдвиг битов XOKS Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 08.11.2010 18:11
Перемешивание позиций битов в числе explored Общие вопросы C/C++ 6 27.10.2010 23:14
Замена второго бита в числе SZR Помощь студентам 4 25.01.2008 20:16
Перестановка битов. RegentM Общие вопросы Delphi 3 05.11.2007 17:23