时间:2021-07-01 10:21:17 帮助过:15人阅读
echo dechex(0x13^0x9c); //结果为 8f,正确echo "
  PHP的 与或运算  如果前后全是字符串  则通过asc码进行与或  
  
 $s1 = '0x13';  
 $s2 = '0x9c';  
  
 转化成asc 进行与或  则为  
 ‘0’                     ‘x’                     ‘1’                   ‘3’        
 00110000    01111000    00110001  00110011  
 ^  
 00110000    01111000    00111001  01100011  
 ----------------------------------------------------------------  
 00000000    00000000    00001000  01010000  
  
 结果是 var_dump(chr(0).chr(0).chr(8).chr(80))   应该是  string(4)"P"  因为用3个非打印字符  
  
  
 dechex转换是按照从数字字符开始(ASC从48到57才识别 其他的都不识别)到尾部或者非数字字符  
 所以结果是0  
  
 
$s1 = 0x13;$s2 = 0x9c;echo dechex($s1^$s2);8f
  $s1 = '0x13';  
 $s2 = '0x9c';  
 是字符串 0x变成字符了  
  
 $s1 = 0x13;  
 $s2 = 0x9c;  
 这两个是16进制数,当然不同了。 
$s1 = hexdec('0x13');$s2 = hexdec('0x9c');echo dechex($s1^$s2); // 8F$s3 = hexdec('13');$s4 = hexdec('9c');echo dechex($s3^$s4); // 8F