Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Двоичный циклический сдвиг

#алгоритм #мк_61


Здравствуйте, друзья. Подскажите, пожалуйста, оптимальный способ реализации двоичного
циклического сдвига (вращения) 32-разрядного значения влево на 11 разрядов на языке
МК-61.    


Ответы

Ответ 1



Встроенные битовые операции тут не помогут, т.к. нет даже нециклического сдвига. Поэтому делаем в десятичной системе: в одном из регистров старшие 16 бит, в другом - младшие. Из старших 16 бит отделяем левые 11 бит (делением нацело на 2 в 5 степени), запоминаем. Остальные 5 бит тоже отделяем (для этого надо как-то остаток от прошлого деления получить), умножаем на 2 в 11 степени. Из младших 16 бит точно так же выделяем старшие 11 бит, прибавляем их к старшему байту. Остаток опять же умножаем на 2 в 11 степени, прибавляем те 11 бит, которые сохранили в самом начале.

Комментариев нет:

Отправить комментарий