Бочонок
http://frontender.info
Помогите понять почему умирает BCMath
Приятного времени суток.
Переписываю функцию, которая работает с gmp библиотекой на использование bcmath.
Помогите пожалуйста разобраться почему умирает bcmath:
Вопрос номер 2: bcmath как то умеет работать с 16ричной системой счисления? Или как то надо переводить в 10чную?
Вопрос номер 3: почему это код дает одинаковый результат, хотя по идее должен давать разный:
Приятного времени суток.
Переписываю функцию, которая работает с gmp библиотекой на использование bcmath.
Помогите пожалуйста разобраться почему умирает bcmath:
PHP:
//переводы строки в числе отсутствуют.
$plain="1123652463376321791020797904596998636590229314504268
65826220121333357624281166255371097430759174804686876329571
79746496956230487046378434366";
$estr="10001";
$nstr="87931B64DA21AF10990970884957F96747CD838B60115A5DF13F8
40D36E5E85701B5DD70FD52379F42F984FCD739F61A50D78E3F76855424
D5DA2FA80E87911D";
//Загибаются
$plain_pow = bcpow($plain, $estr);
$plain_pow = bcpowmod($plain, $estr, $nstr);
//Отрабатывает
$plain_pow = gmp_powm($plain, gmp_init($estr,16), gmp_init($nstr,16));
/*29182685628892396127971287997020984300249915342686643657662
757609208220739890487119918449330985337696834925237888600169
53163389223198365862576560554541467*/
Вопрос номер 3: почему это код дает одинаковый результат, хотя по идее должен давать разный:
PHP:
for($x = 0; $x < 58; ++$x){
$pow = bcpow(256,$x);
echo "<br/>".$pow;
}
for($x = 0; $x < 58; ++$x){
$pow = gmp_powm(gmp_init(256), gmp_init($x), gmp_init($nstr,16));
echo "<br/>".gmp_strval($pow);
}
[PHP]
Подскажите, пожалуйста, в чем может быть дело.
[size=1][i]-~{}~ 29.03.10 20:54:[/i][/size]
Дело было как раз в системе счисления.
Перевел в десятичную и заработало.
