我正在尝试将三种类型的整数(8,16 和 32 位)转换为 Php 中的固定长度十六进制字符串。
例如,第三个 int 是 32 位无符号的。它的值设置为 300。将其转换为十六进制,得到 12c。
我希望始终从我的 int 中获取固定的六个字符的十六进制字符串,即在本例中: 00 01 2c ...或 00 00 78 如果我的 int 值为 120。(注意:我知道 32 位会克服这个范围)
有什么方法可以获取 Php 中十六进制字符串的长度吗?另一种策略是定义六角字符串的长度,但我没有找到任何与此相关的内容。
我的目标只是能够始终将 6 个字符大小的十六进制字符串发送到连接的对象。
我使用“dechex()”将我的值转换为十六进制,但我永远不知道输出的字符数,因此无法向其中添加特定数量的零(因为我的最终十六进制字符串长度为 6 个字符) )。
我读过一些关于设置 PHP_INT_MAX 的内容,但我也读到它会影响所有整数,这是我不想要的。
非常感谢您的帮助。
您可以使用str_pad
<?php
$number = 4;
$hexString = dechex($number);
$result = str_pad($hexString,6,"0",STR_PAD_LEFT);
echo($result);
?>
Run Code Online (Sandbox Code Playgroud)