PDA

View Full Version : مشکل با تابع decoct



Michael Ropy
جمعه 13 شهریور 1388, 09:40 صبح
سلام. من میخوام اعدادی رو از مبنای 10 به مبنای 8 ببرم. تو هر جای دیگه ای (مثل تابع Oct در VB‎.Net و یا سایتهای آنلاین تبدیل مبنا) یه جواب میگیرم که اون جواب هم درسته. ولی وقتی تو php از تابع decoct استفاده میکنم این جواب رو میده: 177777777. حتی از تابع dechex هم جهت تست استفاده کردم باز جواب اشتباهی داد: 1ffffffff. :عصبانی++:

اعدادی که استفاده میکنم 10 رقم به بالا هست. اگر مشکل طولانی بودن عدده پس چرا جاهای دیگه همچین مشکلی پیس نمیاد؟! آخر سر خودم به صورت دستی تبدیل رو ساختم که بازم یه جاش می لنگه! :اشتباه: یعنی بعضی اعداد رو درست و کامل نشون میده و بعضی اعداد رو ناقص (مثلا 4 حرف اول نیست که به خاطر عدد صفر ما بینشون هست). این کد دستی تبدیل که استفاده کردم:




while ($MyNum3<>0)
{
$a = intval(fmod($MyNum3, 8));
$final = $a . $final;
$MyNum3 = intval($MyNum3 / 8);
}



من فقط میخوام این تبدیل به صورت درست و کامل انجام بشه مهم نیست چه جوری باشه. ممنونم! :چشمک:

s_salavati2002
جمعه 13 شهریور 1388, 22:17 عصر
تابع decoct برای اعداد بزرگ تر از 4294967295 کار نمی کنه
خودت باید یک کلاس بنویسی که بتونه این کار رو انجام بده
پیشنهاد می کنم که آرایه درست کنی و رقم به رقم با توجه به ارزش مکانیش رو تو آرایه قرار بدی و توابع مختلف رو به این شکل محاسبه کنی