Помогите поднять код из пхп4 to пхп5

insidex

флихтэръер
Помогите поднять код из пхп4 to пхп5

Собственно во всех этих перламутровых различиях между PHP4 и PHP5 не очень разбираюсь,поэтому прошу помочь сделать рабочим следующий код для пятой версии.Большое спасибо!
PHP:
function zeroFill($a, $b){
    $z = hexdec(80000000);
    if ($z & $a){
        $a = ($a>>1);
        $a &= (~$z);
        $a |= 0x40000000;
        $a = ($a>>($b-1));
    }else{
        $a = ($a>>$b);
    }
    return $a;
}
Еще раз огромное Вам спасибо!
 

insidex

флихтэръер
А...да .
Ну проблема в том,что функция возвращает различные значения в пхп4 и пхп5 (правильное под пхп4). Вот и подумал,что какой-то оператор в ПХП5 имеет немного другой смысл,чем в тоже время в пхп4.

ps.Протестено на php5.0.2 и php4.*.*
 

tony2001

TeaM PHPClub
гм. а значения - тайна?
что конкретно ожидается и что конкретно получается?
 

moxnatiy

Новичок
tony2001
[telepat_mode]
скорее всего опять проблемы c 64-битной архитектурой и sizeof( int )
[/telepat_mode]
 

insidex

флихтэръер
Автор оригинала: tony2001
что конкретно ожидается и что конкретно получается?
При a=4653896912 и b=13 ожидается A= 43814(это на пхп4),а получается A= 524287(это на пхп5)

moxnatiy
Может так оно и есть(хотя на 32 тот же эффект),только как тогда выйти из этой ситуации ?
 

insidex

флихтэръер
Ну все загнали в полный тупик.Значит дело в "железе" :(

-~{}~ 16.04.06 22:26:

Это может быть из-за того,что на сервере криво настроен PHP ?
 

insidex

флихтэръер
Проявлю сверх наглость и все-таки спрошу, что надо поменять в теле этой функции,чтобы она выполняла свое назначение. Хотя бы наметку дайте в какую сторону рыть надо)
 

rob72

Новичок
В качестве информации к размышлению,хотелось бы знать, если в качестве
$a взять меньшее число, не превышающее тип INT, опять врет?
Кстати, у меня тоже на PHP5 все нормально.
 

insidex

флихтэръер
Какое бы число не брать в качестве $a все равно врет.(выдает большую цифру)
Это пример из определения чексуммы для гугл. Буду очень признателен,если поможете разобраться.
 

rob72

Новичок
Я недавно мимоходом смотрел здесь другую тему (не запомнил, где). Так там была похожая проблема, кто-то рекомендовал юзать GMP. По- моему, зерно есть
 
Сверху