Другой люди смущают:
Что должно произойти, если вы скажете, что я хочу сдвинуть 8-битное число на 8 позиций влево
И x - это один байт, что, как вы думаете, следует делать получить
ноль, что было бы довольно логично, если бы вы сместили все эти биты, заполнив их нулями
----------- Я не понимаю -----------
На большинстве машин вы получите то, что было х
Потому что, что будет делать, он вычислит это число мод 8
И причина, по которой это происходит, если вы думаете об этом
Он смотрит только на младшие два три бита величины сдвига и игнорирует все остальные
Так что это по сути похоже на модуль 8
Так что это всего лишь предупреждение, и некоторые машины это делают
То, что вы только что подумали, и другое на машинах он делает это
И поэтому нет никакой гарантии, и в C, что это будет так или иначе
Рэндал Брайант говорит, что есть два результата, когда сдвиг 8-битного числа на 8 позиций влево. (Поправьте меня, если я ошибаюсь)
Я помещаю горизонтальное правило для разделения часть, которую я не понимаю. Особенно На большинстве машин вы получите то, что было х было и . Потому что он будет вычислять этот числовой мод 8 , я не понимаю, почему х то же самое с модом х 8.
Может ли кто-нибудь объяснить немного больше в части ниже горизонтального правила, лучше с работающей программой?