Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中从十六进制值中查找上下字节?_Php_Php 7_Php 7.2_Php 5.4 - Fatal编程技术网

如何在PHP中从十六进制值中查找上下字节?

如何在PHP中从十六进制值中查找上下字节?,php,php-7,php-7.2,php-5.4,Php,Php 7,Php 7.2,Php 5.4,我有一系列十六进制值,比如0x1b12、0x241B、0x2E24、0x392E,我需要从这些十六进制值中计算出低位字节和高位字节,以便进一步处理。我该怎么做?我做了一些研究,发现php中有一个unpack函数,但参数中的“格式”部分让我感到困惑。下面添加了我看到的一些解包代码 unpack("C*",$data) unpack("C*myint",$data) unpack("c2chars/n2int",$data) 正如前面提到

我有一系列十六进制值,比如0x1b12、0x241B、0x2E24、0x392E,我需要从这些十六进制值中计算出低位字节和高位字节,以便进一步处理。我该怎么做?我做了一些研究,发现php中有一个unpack函数,但参数中的“格式”部分让我感到困惑。下面添加了我看到的一些解包代码

unpack("C*",$data)
unpack("C*myint",$data)
unpack("c2chars/n2int",$data)
正如前面提到的代码,我不太理解“C*”、“C*myint”、“c2chars/n2int”在解包函数中的作用。因此,我不太确定是否可以使用解包作为问题的解决方案。非常感谢你的帮助


提前感谢。

您可以使用“打包”功能完成此操作。使用以下工具更容易、更快:

代码需要一个整数$val作为输入。如果“0x1b12”形式的字符串可用作输入,则必须将其转换为整数:

$stringHex = "0x1b12";  //or "1b12"
$val = hexdec(ltrim($stringHex,'0x'));

ltrim是必需的,这样从7.4.0开始就不会生成折旧通知。

您可以使用pack功能来完成此操作。使用以下工具更容易、更快:

代码需要一个整数$val作为输入。如果“0x1b12”形式的字符串可用作输入,则必须将其转换为整数:

$stringHex = "0x1b12";  //or "1b12"
$val = hexdec(ltrim($stringHex,'0x'));

ltrim是必需的,因此从7.4.0开始不会生成折旧通知。

这一点。如果您的十六进制数是一个字符串,请首先使用
hexdec('0x1b12')
@jspit将其转换为int。非常感谢您的回答。您能告诉我这是如何工作的吗?PHP手册中详细介绍了位运算符的功能。我链接了这一部分,谢谢你链接手册。但我只是想理解这里使用的逻辑。谢谢你的建议。这个。如果您的十六进制数是一个字符串,请首先使用
hexdec('0x1b12')
@jspit将其转换为int。非常感谢您的回答。您能告诉我这是如何工作的吗?PHP手册中详细介绍了位运算符的功能。我链接了这一部分,谢谢你链接手册。但我只是想理解这里使用的逻辑。谢谢你的建议。