十六进制基本转换,最多4位数

时间:2018-02-13 11:48:46

标签: php hex

我在理解PHP中的十六进制转换时遇到了问题。

现在我有号码-2.09。我想将其转换为hexa,但结果的长度应为4.因此结果应为FFFE,但它会给我FFFFFFFE

为了给我只有4位十六进制数,使用的函数是什么?

目前我只使用此功能进行转换:

dechex(-2)

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

demo