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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2012, 17:51   #1
d1mka_
 
Регистрация: 03.10.2011
Сообщений: 7
По умолчанию Работа с битами (С++)

объясните пожалуйста суть задания, и помогите с кодом, буду благодарен



Задание
Реализовать алгоритм инвертирования n-разрядов целого числа без знака, начинающихся с p-ой позиции. Оставшиеся разряды остаются без изменения. Значения переменной, подлежащей преобразованию, а также значения n и p вводятся с клавиатуры. Результат вывести на экран в восьмеричном виде.
d1mka_ вне форума Ответить с цитированием
Старый 27.03.2012, 21:24   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,374
По умолчанию

Можно посмотреть так:
1. Получить целое положительное число А, например, в двоичном виде,
1100101000101101 (тут 16 бит).
2. Получить n и p.
3. Получить число M, в котором биты с p-ой по p+n -ю позиции установлены в единицу.
4. Манипулируя операторами NOT, AND и OR (в Си это вроде !, & и |).
а) выделяем из исходного числа фрагмент с p-ой по p+n -ю позиции;
б) Инвертируем полученный фрагмент;
Например, так: K =!(A & M);
5. Встраиваем фрагмент в исходное число. Для этого:
а) Удаляем биты, соответствующие битам числа М: F=A & (!M);
б) Вставляем ранее полученное число: F = F | M ;

Как то так, думаю ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с битами Dimarik Общие вопросы C/C++ 14 08.03.2011 18:21
работа с битами Henpyxa Общие вопросы C/C++ 5 23.05.2010 12:09
работа с битами тотошкин Общие вопросы C/C++ 2 22.04.2010 12:06
Работа с битами alexmikt Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 25.09.2009 13:24
Работа с битами в C dmitmal Общие вопросы C/C++ 5 20.05.2009 04:27