Помогите понять почему умирает BCMath

Бочонок

http://frontender.info
Помогите понять почему умирает BCMath

Приятного времени суток.
Переписываю функцию, которая работает с 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*/
Вопрос номер 2: bcmath как то умеет работать с 16ричной системой счисления? Или как то надо переводить в 10чную?
Вопрос номер 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]

Дело было как раз в системе счисления.
Перевел в десятичную и заработало.
 

Krishna

Продался Java
Бочонок

Мне вот интересно, как ты полагаешь должна библиотека догадываться, какая у тебя система исчисления?

Вот 10 - это в какой по-твоему системе исчисления запись?

И что такое за ошибка "помирает"? И это пишет человек с 40х постами...
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
он не загибается, просто считает минут 5
сейчас еще раз запущу и скажу сколько символов в ответе

-~{}~ 29.03.10 21:54:

bcpow($plain, $estr) - ответ 1 390 646 цифр

-~{}~ 29.03.10 21:55:

или меняй алгоритм, или покупай суперкомпьютер миллионов так за ндцать долларов для таких вычислений
 

Бочонок

http://frontender.info
Уже все поправил. :)
Перевел в 10 систему исчисления их 16ричной и все заработало.

Теперь моя библиотека поддерживает так же BCMath.
http://code.websaints.net/

-~{}~ 29.03.10 23:03:

2Krishna: "помирает" - у меня выводился повторно последний вывод сделанный с помощью echo, ечли он был, после чего работа завершалась без выдачи каких либо варинигов или ошибок.
Я согласен, "помирает" не говорит почти ничего и так писать нельзя. Но, честно говоря, вышеописанное поведение настолько сбило меня с толку, что ничего лучше я не придумал.
 
Сверху