Bill (17.01.2013 08:58, просмотров: 203) ответил koyodza на это нормально, -5/2=-2,5, при округлении вниз получается -3, всё работает правильно
Все дело в том, что при сдвигах округления нет. И потом, при делении целых чисел округления также нет. Далее, если число со знаком положительное, то сдвиг также выполняется без округления, но корректно. И наконец, операция выполняется корректно, если мы можем восстановить исходные данные, выполнив обратные действия. Например: -5/2 = -2 +(-1), -2*2 + (-1) = -5. При операции деления все так и получается. При операции сдвига - нет: -5/2 = -3 + (-1) = -7. Нужно иметь в виду, что знак остатка совпадает со знаком делимого.
PS: Я попробовал взять другой пример -17/4. После сдвигов в результате получается число -5. Хотя, если говорить об округлении, число должно быть -4. Или нет?