Цитата:
Сообщение от Wowchik
Большинство, наверное, подумает, что это элементарные вещи, которые надо решать наедине с кнопкой F1. Но я не смог) Мне кажется, что блок Shift(16) предвзято относится к единицам, предпочитая им нули. Возможно борется с гендерным неравенством. При сдвиге вправо или влево освобождающиеся разряды заполняются нулями в количестве Shift, а единицами только в количестве один. Наверное, в начале вход Shift был логическим, а потом его улучшили до целого..
Лоджик 3 33 233
|
Да, всё так. Этот блок всегда так работал - заполнение корректно только при сдвиге на 1.
Вопрос можно решить комбинацией шифта или SHR/SHL с OR(16), объединяющим выход шифта и мультиплексор, на котором набрать заполнение: нулевой вход 0, первый вход 1b, второй 11b и так далее до 15.
Если нужно два направления, то используйте два мультиплексора, каждый на своё направление.