2015-11-29 120 views
0

如何使用PHP將二進制數(即1111111)轉換爲十六進制(即7f)?我承認我可以做dechex(bindec('1111111'));,但是,我確信這不是正確的做法。使用PHP將二進制轉換爲十六進制

我試圖bin2hex('1111111')但卻造成31313131313131.

回答

5

您的解決方案很好。您也可以使用base_convert

$binary = '1111111'; 
echo base_convert($binary, 2, 16); // 7f 

但請記住,PHP不是爲計算而構建的。它是爲使用字符串而構建的。

+0

謝謝謝爾蓋。這看起來好一些(或者至少更可讀)。 – user1032531

1
dechex(bindec($binary)); 

這是正確的方式,你是把多餘的 「)」(最終右括號)...

參考:http://php.net/manual/en/function.bin2hex.php

+0

對不起,那肯定是對有機磷農藥問題... – arkascha

+0

爲什麼要引用'bin2hex()'?從名字來看,人們會認爲它會起作用,然而,並非如此。 – user1032531

0

試試這個:

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

看看這個鏈接獲取更多信息 http://php.net/manual/en/function.bin2hex.php

+0

雖然這段代碼可能會回答這個問題,但最好包含一些上下文,解釋它的工作原理以及何時使用它。從長遠來看,僅有代碼的答案是沒有用的。 – Bono

+0

好吧,我會嘗試nex時間 –

+0

您可以通過按下左下角的「編輯」編輯您的答案。繼續,試試吧:) – Bono

0

你也可以試試這個功能:

<?php 

function hexentities($str) { 
$return = ''; 
for($i = 0; $i < strlen($str); $i++) { 
    $return .= '&#x'.bin2hex(substr($str, $i, 1)).';'; 
} 
return $return; 
} 

?> 
相關問題