Цитата(Jema @ 14.1.2010, 22:21 ) | Правый сдвиг, переносящий знак a >> b Сдвигает двоичное представление a на b битов вправо, отбрасывая сдвигаемые биты. Правый сдвиг с заполнением нулями a >>> b Сдвигает двоичное представление a на b битов вправо, отбрасывая сдвигаемые биты и добавляя нули слева. |
Я откровенно говоря не уловил разницы между этими двумя операциями.
В первом случае разве не нули слева появляются?
В смысле что 01001 >> 1 = 00100 и это эквивалентно 1001 >> 1 = 100
Или где-то в языках высокого уровня учитывается битовая разрядность чисел? и 00100 != 100 ? В честь чего?
Добавлено через 1 минуту и 7 секунд Аааа. жесть
| Цитата | | a >> b Арифметический сдвиг вправо Сдвигает двоичное представление левого операнда вправо на количество бит, заданное вторым операндом. Освобождающиеся слева биты заполняются старшим (знаковым) битом. a >>> b Логический сдвиг вправо Сдвигает двоичное представление левого операнда вправо на количество бит, заданное вторым операндом. Освобождающиеся слева биты заполняются нулями. |
Как говориться читайте ПРАВИЛЬНЫЕ мануалы.
Добавлено через 1 минуту и 38 секунд http://wdh.suncloud.ru/js04.htm
Добавлено через 10 минут и 8 секунд А вот что говориться в PHP
| Цитата | $a >> $b Shift right Shift the bits of $a $b steps to the right (each step means "divide by two")
Bit shifting in PHP is arithmetic. Bits shifted off either end are discarded. Left shifts have zeros shifted in on the right while the sign bit is shifted out on the left, meaning the sign of an operand is not preserved. Right shifts have copies of the sign bit shifted in on the left, meaning the sign of an operand is preserved. |
Цитата(Jema @ 14.1.2010, 22:21 ) | | Справедлива ли замена >>> на abs($a >> $b) в PHP? |
да |