По-моему я наглядно показал, как работают арифметические сдвиги для байта. Смотрите и думайте. Числа без знака на один бит длиннее и sal не сохраняет знак, отсюда и разница будет. Какие у вас регистры? Не указали. Видно же, что sar не дают переполнения, а качество результата sal зависит от количества значащих битов, точнее когда знак изменится. Откуда я знаю почему у вас на 1 различаются, из ваших объяснений это вовсе не следует, может вы дополнительный код отрицательного числа не умеете получать?
Как работает арифметический сдвиг, я знаю и знал, задолго до того, как создал эту тему.
Вы в вопрос вчитывались?......Я не спрашиваю, как работает операция сдвига, ещё раз повторяю, меня интересует:
Изменится ли что-нибудь, если сдвиг числа |X| приводит к выходу значащих битов за
пределы 8-битовой ячейки памяти? Когда тут спрашивают, изменится ли что-нибудь, имеется ввиду, числа будут по-прежнему в таком же отношении эквивалентности, как и в первом вопросе или нет. Ответ обосновать.
Это одно число, оно знаковое, в одном случае мы применяем сдвиг, а в другом случае берём модуль, затем сдвиг, а потом отрицание, и тут не спрашивается, будут ли числа правильно посчтаны или нет, тут спрашивается, будут ли они ОДИНАКОВЫ. И зачем вы мне пишите, что беззнаковое число на 1 бит больше, оно не больше, оно занимает столько же бит, различие лишь в том, что старший бит у знакового отводится под знак. А регистры то здесь причём???
Да, и ещё, поконкретнее скажите, что из чего не следует в моих объяснениях?