>> в Сях - это деление на степень двойки. Вот так проще всего описать. Скажем, -4 сдвинуть вправо будет -2. 4 сдвинуть вправо будет 2. (А побитнно если рассматривать эти числа будет очень существенная разница. Команда арифметического сдвига дублирует при сдвиге старший бит. И компилятор сам решает какую команду применить).
Посему, если работаем с битами, масками, управляющими словами, адресами регистров - не надо использовать ЗНАКОВЫЕ объявления. Вернее, использвать можно, но только ТОЧНО зная, что делаешь и зачем тебе это нужно.
У меня вот такое правило. Переменные объявляю всегда unsigned. Если уж объявляю signed - то уж с конкретной явной целью. К примеру буду вычислять что=нибудь, что имеет знак, или потребуется сравнивать что-то с чем-то и потребуется значение разницы.
Короче, куда ни кинь - кругом надо всегда иметь ввиду знаковость переменной.
Сообщение отредактировал DpInRock - Jul 2 2009, 02:50
--------------------
On the road again (Canned Heat)
|