Стремясь прояснить что-то.
Насколько я понимаю, в отношении арифметических, логических побитовых сдвигов:
<<
работают одинаково для обоих >>
сдвиги отличаются тем, что логический сдвиг всегда заполняет байт 0, тогда как арифметическое смещение заполняет его знаковым битом.
Как я могу дифференцировать это, используя C?
Насколько я понимаю, действительные операторы одинаковы <<
, >>
Как будет различаться команда:
int i=1;
printf ("%d\n", i >> 1); // logical shift
int j=1;
printf ("%d\n", j >> 1); // arithmetical shift
Пожалуйста, дайте мне знать,