Страница 1 из 1

Обработка битовых последовательностей

Добавлено: 22 янв 2010, 07:25
"Flash"
Здравствуйте, помогите пожалуйста решить задачку. Тема: Обработка битовых последовательностей.
Нужно реализовать алгоритм инвертирования n разрядов целого числа без знака начинающихся с p-той позиции. Оставшиеся разряды остаются без изменения. Значения переменной подлежащей преобразованию а также значения n и p вводятся с клавиатуры. Результат выводится на экран в 8-ричном виде.

Re: Обработка битовых последовательностей

Добавлено: 22 янв 2010, 09:23
Хыиуду
x=x xor (((1 shl n)-1)) shl p)
Пишу в паскалевском синтаксисе, не помню точно, как в Си побитовые операции называются.
общий смысл такой:
Берем число 1, сдвигаем налево на n разрядов, получаем 10000... (n нулей). Вычитаем 1, получаем 011111... (n eдиниц). Сдвигаем еще раз на p разрядов, получаем 0111....0000... (n единиц, p нулей). И ксорим.