Являются ли операторы сдвига (<<, >>) арифметическими или логическими в C?

Согласно K&R 2nd edition результаты зависят binary от реализации для сдвигов bit-shift вправо значений со знаком.

Wikipedia говорит, что bit-fiddling C/C++ «обычно» реализует bitwise арифметический сдвиг для bitwise-shift значений со знаком.

По сути, вам bitwise-shift нужно либо протестировать binary-number свой компилятор, либо не bit-fiddling полагаться на него. В моей bit-twiddling справке по VS2008 для текущего bitwise-shift компилятора MS C++ сказано, что binary их компилятор выполняет арифметический bit-shift сдвиг.

c

binary

bit-manipulation

bit-shift

2022-10-31T22:29:23+00:00
Вопросы с похожей тематикой, как у вопроса:

Являются ли операторы сдвига (<<, >>) арифметическими или логическими в C?