![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 03.10.2011
Сообщений: 7
|
![]()
объясните пожалуйста суть задания, и помогите с кодом, буду благодарен
Задание Реализовать алгоритм инвертирования n-разрядов целого числа без знака, начинающихся с p-ой позиции. Оставшиеся разряды остаются без изменения. Значения переменной, подлежащей преобразованию, а также значения n и p вводятся с клавиатуры. Результат вывести на экран в восьмеричном виде. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 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 ; Как то так, думаю ...
Как-то так, ...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с битами | 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 |