decbin();
Проблема в том что если я задаю число для перевода вручную
echo decbin(2147483647);
Все получается отлично и выводятся нужные 32 единички и нолика.
Но вот если задаю это значение из пропаршнеого симплэксмлом документа
$DATA = simplexml_load_file("#") or false;
foreach ($DATA->items as $ITEMS) {
foreach ($ITEMS->item as $ITEM) {
$itemtoken = $ITEM->inventory;
echo $itemtoken , '<br>';
echo decbin($itemtoken);
}
}
Получается полнейшая печаль в виде 31й еденицы.
Думаю что проблема в том , как парсер преподносит числа. Вопрос - как заставить работать этот decbin();?
Спустя 17 минут, 8 секунд (20.10.2011 - 21:07) kirik написал(а):
а что за числа в этом $ITEM->inventory?
Спустя 2 минуты, 50 секунд (20.10.2011 - 21:09) Winston написал(а):
А если так ?
echo decbin((int)$itemtoken);
Спустя 5 минут, 53 секунды (20.10.2011 - 21:15) Agahnim написал(а):
Цитата (Winston) |
А если так ? |
То-же самое
Цитата (kirik) |
а что за числа в этом $ITEM->inventory? |
2147483730
2147483725
2147483688
и т.п.
Спустя 8 минут, 45 секунд (20.10.2011 - 21:24) Winston написал(а):
2^31 = 2147483647
Потому и выводятся 1
Вот и ответ на вопрос
Потому и выводятся 1
Вот и ответ на вопрос
Спустя 10 минут, 18 секунд (20.10.2011 - 21:34) Agahnim написал(а):
Цитата (Winston @ 20.10.2011 - 18:24) |
2^31 = 2147483647 Потому и выводятся 1 Вот и ответ на вопрос |
А теперь если прочитать верхний пост то ты увидишь что при
echo decbin( 2147483647);выводятся не 31 единица а 32 правильных числа (проверил)
Спустя 3 минуты, 33 секунды (20.10.2011 - 21:38) Winston написал(а):
Цитата |
simplexml_load_file("#") |
Из интернета тянешь? Дай адрес.
Спустя 23 минуты, 47 секунд (20.10.2011 - 22:02) kirik написал(а):
Цитата (Agahnim @ 20.10.2011 - 14:34) |
echo decbin( 2147483647); выводятся не 31 единица а 32 правильных числа (проверил) |
$nums = array(
2147483647, // 31
2147483730, // 32
2147483725, // 32
2147483688 // 32
);
foreach($nums as $num) {
echo 'Num: ' . $num . "\n";
echo 'Bin: ' . ($bin = decbin($num)) . "\n";
echo 'Len: ' . strlen($bin) . "\n\n";
}
/*
Num: 2147483647
Bin: 1111111111111111111111111111111
Len: 31
Num: 2147483730
Bin: 10000000000000000000000001010010
Len: 32
Num: 2147483725
Bin: 10000000000000000000000001001101
Len: 32
Num: 2147483688
Bin: 10000000000000000000000000101000
Len: 32
*/
Что я делаю не так?
Спустя 14 минут, 10 секунд (20.10.2011 - 22:16) Agahnim написал(а):
Цитата (kirik @ 20.10.2011 - 19:02) | ||
$nums = array( Что я делаю не так? |
Числа со стороннего API тянутся - количество и сами числа от меня не зависят, но они гарантированно раскладываются в бинарник.
Спустя 36 секунд (20.10.2011 - 22:17) Winston написал(а):
Я вот, что не пойму, почему не получается привести к типу int ? :blink:
$itemtoken = 2147483730;
echo decbin($itemtoken); //10000000000000000000000001010010
$itemtoken = '2147483730';
echo decbin($itemtoken); //1111111111111111111111111111111
$itemtoken = '2147483730';
echo decbin((int)$itemtoken); //1111111111111111111111111111111
Спустя 7 минут, 6 секунд (20.10.2011 - 22:24) Agahnim написал(а):
Цитата (Winston @ 20.10.2011 - 19:17) |
Я вот, что не пойму, почему не получается привести к типу int ? :blink: $itemtoken = 2147483730; |
Вот и я о том же. Вот как с этим бороться то?
Спустя 28 минут, 58 секунд (20.10.2011 - 22:53) kirik написал(а):
Цитата (Winston @ 20.10.2011 - 15:17) |
Я вот, что не пойму, почему не получается привести к типу int ? :blink: |
Цитата (Agahnim @ 20.10.2011 - 15:24) |
Вот и я о том же. Вот как с этим бороться то? |
Я вот тож не пойму.. у вас денвер что-ли?
$itemtoken = 2147483730;
echo var_dump($itemtoken) . decbin($itemtoken) . "\n\n";
$itemtoken = '2147483730';
echo var_dump($itemtoken) . decbin($itemtoken) . "\n\n";
$itemtoken = (int) '2147483730';
echo var_dump($itemtoken) . decbin($itemtoken) . "\n\n";
/*
int(2147483730)
10000000000000000000000001010010
string(10) "2147483730"
10000000000000000000000001010010
int(2147483730)
10000000000000000000000001010010
*/
Спустя 24 минуты, 47 секунд (20.10.2011 - 23:17) Winston написал(а):
Цитата (kirik @ 20.10.2011 - 22:53) |
Я вот тож не пойму.. у вас денвер что-ли? |
Он самый
Спустя 7 минут, 55 секунд (20.10.2011 - 23:25) kirik написал(а):
Цитата (Winston @ 20.10.2011 - 16:17) |
Он самый |
Что-то в нём есть, правда? Некая непредсказуемость, ощущение праздника с сюрпризами, что-ли
Спустя 2 минуты, 43 секунды (20.10.2011 - 23:28) Winston написал(а):
Цитата (kirik @ 20.10.2011 - 23:25) |
Что-то в нём есть, правда? Некая непредсказуемость, ощущение праздника с сюрпризами, что-ли |
Для меня это первый сюрприз от денвера, раньше никаких сюрпрайзов не замечал
Спустя 13 минут, 17 секунд (20.10.2011 - 23:41) kirik написал(а):
Winston
за время, проведённое мной на форуме это уже *дцатый случай
за время, проведённое мной на форуме это уже *дцатый случай
Спустя 32 минуты, 4 секунды (21.10.2011 - 00:13) Игорь_Vasinsky написал(а):
а до этого что было ? поделись...