Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Перевод массива в десятичный код и обратно |
Автор: Gold Dragon 14.3.2012, 08:07 |
Есть массив типа array( 0=>0, 1=>1, 2=>0, 3=>1, 4=>0, 5=>1 ) Необходимо перевести это массив в десятичный вид и потом проделать обратную процедуру. Прямой перевод простой - массив в строку - строку в десятичный код А вот с обратным что-то проблема.. у меня получается куча функций.. Очень рад был бы услышать разные варианты решения |
Автор: MoLeX 14.3.2012, 08:12 | ||
то есть должно получиться такое
|
Автор: ksnk 14.3.2012, 09:12 | ||||
http://ru.php.net/manual/en/function.base-convert.php ?
|
Автор: Gold Dragon 14.3.2012, 10:57 |
MoLeX, нет. Могут быть только единица или ноль. т.е. в конечном итоге двоичная система Например: Исходная строка получается - 010101 (получаем из массива) Десятичная получается - 21 и потом должна получится опять строка 010101 ну и в конечно итоге массив ksnk, малость не понял твой код.. исходное число может быть любое и 010101 и 0001000. И не проще тогда воспользоваться bindec() и decbin() |
Автор: gta4kv 14.3.2012, 11:27 |
поменяй base_convert на bindec & decbin, результат один и тот же. какая разница? |
Автор: ksnk 14.3.2012, 11:51 |
Мне казалось, что элемент с индексом 0 - младший бит двоичного числа. Если не так, то нужно выкинуть array_reverse из моего примера. Ну и да, заменить base_convert на bindec/decbin если других вариантов размерности не будет. |
Автор: Gold Dragon 14.3.2012, 12:11 |
я знаю эти функции ![]() То ли я не могу правильно объяснить, то ли второе ![]() имеем: array("0","0","1","1","0","0") т.е. строку "001100" и после bindec/decbin мы получим строку "1100" и следовательно: array("1","1","0","0") а это разные варианты.. Я просто хочу найти оптимальный вариант добавлять "нули" в массив |
Автор: skyboy 14.3.2012, 12:26 |
я так понимаю, ты знаешь, сколько у тебя всего элементов должно получиться? ну, в смысле, сколько нулей надо добавить? если да, то decbin + str_pad + str_split если нет, то я офигею ![]() |
Автор: Gold Dragon 14.3.2012, 12:31 |
вот я тормоз!!!!.. можно ведь сначала дополнить строку, а уж потом перевести в массив ![]() Всё. вопрос снимается... а я мучаюсь и думаю как в начало массива добавить нули и получается безумный какой-то код ![]() |