如何解决如何在PHP中从Hex值查找低字节和高字节?
我有一系列十六进制值,例如0x1b12、0x241B,0x2E24、0x392E,我需要根据这些十六进制值中的每一个计算低字节和高字节,以进行进一步处理。我怎样才能做到这一点?我做了一些研究,发现php中有一个 unpack 函数,但是参数中的“格式”部分使我感到困惑。下面添加了一些我看到的解压缩代码。
unpack("C*",$data)
unpack("C*myint",$data)
unpack("c2chars/n2int",$data)
正如前面提到的代码,我不太了解unpack函数中“ C *”,“ C * myint”,“ c2chars / n2int”的作用。因此,我不确定是否可以使用unpack作为解决问题的方法。非常感谢您的帮助。
谢谢。
解决方法
您可以使用打包功能执行此操作。使用Bitwise Operators更加轻松快捷:
$val = 0x1b12; //or $val = 6930;
$lowByte = $val & 0xff; //int(18)
$uppByte = ($val >> 8) & 0xff; //int(27)
代码需要一个整数$ val作为输入。如果输入形式为“ 0x1b12”,则必须将其转换为整数:
$stringHex = "0x1b12"; //or "1b12"
$val = hexdec(ltrim($stringHex,'0x'));
ltrim是必需的,以便从7.4.0开始不产生任何折旧通知。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。