Логические, арифметические побитовые сдвиги

Попытка кое-что прояснить.

Насколько я понимаю, в отношении арифметических, логических побитовых сдвигов:

  1. << работают одинаково для обоих
  2. >> сдвиги отличаются тем, что логический сдвиг всегда дополняет байт 0, тогда как арифметический сдвиг дополняет его знаковым битом.

Как я могу отличить это с помощью C?

Насколько я понимаю, фактические операторы одинаковы << , >>

Чем отличаются команды между:

int i=1;
printf ("%d\n", i >> 1); // logical shift

int j=1;
printf ("%d\n", j >> 1); // arithmetical shift

Дайте мне знать,

9
задан chue x 12 June 2017 в 18:57
поделиться