![]() |
Циклический битовый сдвиг в PHP
Очень нужно реализовать на PHP функцию циклического сдвига 32 битного числа.
в ассемблере просто всё - ror/rol а в PHP такого нет. Вообще нашел только << и >> но это не циклический сдвиг. Пытался сам реализовать через операции $k = $k >> 3 + $k << 29; В других языках (компилируемых) такое прокатилобы, а вот в PHP почемуто не пашет. |
http://www.rinatous.com/blog/node/1.html
|
и? В чем смысл того, что ты дал? Там рассматриваются непосредственно операции над битами, это есть в любой доке по PHP
А тут нужно именно циклический сдвиг |
фуф. вопрос решил сам. почемуто такое стало работать
$k = ($k << 29) + ($k >> 3); и в одном месте chr() забыл |
Такое работает не при всех вариантах. Если левый бит равен 1, то заливка слева после смещения будет единицами, что при сложении не допустимо..
Написал код (про моём тестировании всё нормально): PHP код:
Цитата:
Цитата:
|
Цитата:
И лучше не + писать, а |. |
| Время: 13:00 |