2013-05-16 119 views
0

我需要將二進制字符串轉換爲十六進制字符串。此代碼工作正常:PHP中二進制到十六進制轉換的限制

<? 
$binary = "1111111111111111111111101000011111111111111111110000001000100100"; 
$hex = dechex(bindec($binary)); 
echo $hex; 
?> 

不過,如果我添加一個額外的位(或更多)的二進制串,結果剛回來爲0

<? 
$binary = "11111111111111111111111101000011111111111111111110000001000100100"; 
$hex = dechex(bindec($binary)); 
echo $hex; 
?> 

我想我可以分手二進制字符串分塊,然後結合十六進制值,但有沒有更簡單的方法?

回答

0

您的函數將該數字顯式轉換爲int,達到32位限制。 bcmath時有一個位計算的時間和花費包含在串數字,所以你可以乘成千上萬的數字。

不幸的是改變數字基地沒有本土bcmath時功能,但the needed function這樣做在一分鐘內完成。檢查鏈接。

相關問題