| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Глюк операции "<<" в 4.3.8 ? |
| Автор: xaoc2 30.10.2005, 11:47 | ||
| Недавно в институте получил задание. Нарисовать блок-схему алгоритма конверсии десятичных цифр в бинарные. Обычно я прогоняю такие задания на PHP для экономии времени. Придумал алгоритм с операцией сдвига , но вывод - сюрприз для меня. Здесь decbin() для контроля
Вот вывод: 10101111100101010 000000000000000-10-10-1-1-1-1-100-10-10-10 Откуда чёрточки? Без них вроде бы всё сходится. |
| Автор: Mal Hack 30.10.2005, 13:36 |
| Мож просто выводятся перед 1 именно. |
| Автор: xaoc2 30.10.2005, 22:08 | ||
Но ведь не должно по определению. При битовом сдвиге может быть 1 или 0. |
| Автор: Mayk 30.10.2005, 22:13 | ||||||
При побитовом сдвигании знаковый бит не меняется в данном случае. Добавлено @ 22:14 То есть $b >> 31 вернет либо 0, либо -1. Иными словами $b >> 31 заполняет все битиы знаковым. хотя бы echo abs($b >> 31); спасёт мир Добавлено @ 22:19 а если серьезно, то хотя бы
Добавлено @ 22:22 или вообще разверни цикл
|
| Автор: xaoc2 31.10.2005, 22:55 | ||
| Большое спасибо, попутно неожиданно нашёл решение дркгой проблемы: как прочитать произвольный бит числа.
|