如何将字符串中的两个字符视为一个字节?

时间:2018-11-08 15:05:57

标签: php tlv

考虑:

$tag = "4F";

$ tag是一个包含两个字符“ 4”和“ F”的字符串。我希望能够将它们分别视为整个字节(4F)的上半字节和下半字节,以便继续计算位模式(01001111)

由于这些字符在技术上都是字符,因此可以将它们各自视为一个字节-ASCII表上的4为0x52,F为0x70。

几乎所有允许对字节进行操作的PHP内置函数(到目前为止,我已经看到)都是后一种描述的变体:“ 4”为0x52,而不是字节的高半字节。

我不知道有什么快速或内置的方法可以使PHP以我想要的方式进行处理,但是感觉应该存在。

如何将字符串“ 4F”转换为字节4F,或将每个字符视为半字节对中的半字节。是否有任何内置函数可以使PHP将“ 4F”或“ 3F0E”之类的字符串作为半字节来处理?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您想要“十六进制数字的十进制表示形式”,则hexdec是一种选择。

如果要“十六进制位模式”,请使用base_convert。文档甚至显示了此操作的示例:

  

示例#1 base_convert()示例

     

$hexadecimal = 'a37334';
  echo base_convert($hexadecimal, 16, 2);

     

上面的示例将输出:

     

101000110111001100110100