我在理解PHP中的十六进制转换时遇到了问题。
现在我有号码-2.09
。我想将其转换为hexa,但结果的长度应为4.因此结果应为FFFE
,但它会给我FFFFFFFE
。
为了给我只有4位十六进制数,使用的函数是什么?
目前我只使用此功能进行转换:
dechex(-2)
答案 0 :(得分:0)
如果您完全确定只需要4个字节来存储您的号码,您可以使用substr
来检索您需要的部分:
$a = dechex(-2);
=> "fffffffffffffffe"
substr($a, -4);
=> "fffe"
答案 1 :(得分:0)
负数需要更多位才能以十六进制版本存储其值,因为还必须存储-
符号。
因此,您不能将数字-2.09
存储在4长度十六进制表示中,也不能存储-2
数字:
示例:
echo dechex((float)-2.09);
echo "\n";
echo dechex(-2);
输出:
fffffffe
fffffffe