解决方案 »

  1.   

    先把一个事情弄清楚
    图中右侧的 ASCII 形式和中部的 HEX 形式都是同一个东西(我们称作二进制串)
    这两种表示方式都不用于实际的数据通讯中,通讯时依然使用的是二进制串$s = 'ABCDEFGHIJKLMNOP';
    echo strtoupper(join(' ', str_split(bin2hex($s), 4)));4142 4344 4546 4748 494A 4B4C 4D4E 4F50
      

  2.   

    斑竹大大可来了~~~我现在是这样理解的,我们协议里是按照hex一段一段来解数据嘛,比如第二行DD07,转为十进制后是221和7,之后通过协议规定221+7*256=2013。但是现在我把这段字符取出来直接变成ascii形式了,协议就不灵了,我的问题就在于此,怎么让我取出来的还是hex形式?
      

  3.   

    十六进制(HEX)表示 只是为了描述上的直观如果一个字符串的十六进制表示是 DD07
    那么在 php 中就可写作 
    $s = chr(0xdd) . chr(0x07);
    echo ord($s{0}; //221
    echo ord($s{1}; //7