Segnetics

Вернуться   Segnetics > Форум Segnetics > Вопросы о программировании

Вопросы о программировании Вопросы, касающиеся программирования на FBD

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2021, 11:56   #1
Wowchik
Новичок
 
Регистрация: Apr 2021
Адрес: Минеральные Воды
Сообщения: 3
Благодарил(а): 1 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Блок Shift(16)

Большинство, наверное, подумает, что это элементарные вещи, которые надо решать наедине с кнопкой F1. Но я не смог) Мне кажется, что блок Shift(16) предвзято относится к единицам, предпочитая им нули. Возможно борется с гендерным неравенством. При сдвиге вправо или влево освобождающиеся разряды заполняются нулями в количестве Shift, а единицами только в количестве один. Наверное, в начале вход Shift был логическим, а потом его улучшили до целого..
Лоджик 3 33 233
Wowchik вне форума   Ответить с цитированием
Старый 01.06.2021, 12:00   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 086
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: Блок Shift(16)

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

Вопрос можно решить комбинацией шифта или SHR/SHL с OR(16), объединяющим выход шифта и мультиплексор, на котором набрать заполнение: нулевой вход 0, первый вход 1b, второй 11b и так далее до 15.

Если нужно два направления, то используйте два мультиплексора, каждый на своё направление.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 13:36.


Версия vBulletin: 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2024