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

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

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

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

c

binary

bit-manipulation

bit-shift

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

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