[請益] mod % 餘數最大位只能到9位數

看板PHP作者 (popmij)時間16年前 (2009/06/09 13:39), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
最近寫了一個進制轉換函數 10進位轉X進位大致架構上是這樣的 1.算出要轉的進制最高次方 2.開始迴圈除進制次方 如果>0 暫存字串加入除後的整數 並將此數與進制次方進行取得餘數 否則 暫存字串加入一個"0" 3.回傳最後結果 程式的部份: ******************************************* function dtb_conv($x,$y) { $i=0;$tn=-1; while($tn<0) { if(pow($y,$i)>$x)$tn=$i-1; $i+=1; } for($i=$tn;$i>=0;$i--) { if($x/pow($y,$i)>0) { $stmp=(int)($x/pow($y,$i)); if($stmp>9)$stmp=chr($stmp+55); $trn.=$stmp; $x=$x % pow($y,$i); } else $trn.="0"; } return $trn; } ****************************************** 問題就出在 $x=$x % pow($y,$i); 這裡 如果要轉的數大於10位~就會有些數字不正確 並出現 Warning: Division by zero in XXX 想知道是不是PHP 內建mod有限制位數? 還是要修改什麼!? 或者自己寫個另外的mod函數!? -- A:你的日曆怎麼都沒撕啊? B:這樣才會每天過年啊!! 有這種道理嗎????? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 120.118.111.28

06/09 15:21, , 1F
bcmath?...gmp?...試試看囉...
06/09 15:21, 1F
文章代碼(AID): #1ABVL_FC (PHP)
文章代碼(AID): #1ABVL_FC (PHP)