您好,我有一個字符串193390663,我想將其轉(zhuǎn)換為hexwith 2's compliment。輸出是0B86E847現(xiàn)在我正在使用下面的功能,但它給了我313933333930363633 public static function String2Hex($string){ $hex = ''; for($i=0; $i<strlen($string); $i++) { $hex.=dechex(ord($string[$i])); }}更新 1試過這個 $sub2 = substr($m->msn,4,9); $m->m_hex = dechex ($sub2);輸出b86e847但我想要輸出像0B86E847任何幫助將不勝感激。
1 回答

慕斯709654
TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個贊
您正在尋找的解決方案如下,
<?php
function signed2hex($value, $reverseEndianness = true)
{
? ? $packed = pack('i', $value);
? ? $hex='';
? ? for ($i=0; $i < 4; $i++){
? ? ? ? $hex .= strtoupper( str_pad( dechex(ord($packed[$i])) , 2, '0', STR_PAD_LEFT) );
? ? }
? ? $tmp = str_split($hex, 2);
? ? $out = implode('', ($reverseEndianness ? array_reverse($tmp) : $tmp));
? ? return $out;
}
echo signed2hex(193390663);
- 1 回答
- 0 關(guān)注
- 191 瀏覽
添加回答
舉報(bào)
0/150
提交
取消