Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Вторник
26 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
ARM, RISC-V контроллеры
821884
Топик полностью
Николай Коровин
(06.03.2018 13:06, просмотров: 152)
ответил
SciFi
на
Отставить панику. Инструкция ASR для этого и сделана. Был неправ, вспылил. Деление и сдвиг отрицательных чисел даёт разный результат, отсюда и доп. код. Если включить оптимизацию, яр может догадаться, что число положительное (if z > 0) и выкинуть
Некоторые компиляторы типа Watcom имеют чёткую документацию — знаковое целое сдвигается с распространением знака, беззнаковое — тупо побитно. Т. е. жёсткое приведение типа даёт детерминированное поведение.
Ответить
Если документация на компилятор дублирует правила языка Си, это немного странно. Если она приводит другие правила, это вообще угар. Снова был неправ, вспылил. Стандарт языка говорит, что сдвиг вправо отрицательного числа "implementation-defined".
SciFi
(308 знак., 06.03.2018 13:18 - 13:29
)