需要用php处理一串16进制的字符串做异或运算,赋值到数组后计算得到的是空。如果直接复制变量计算的后就能得到正常结果,求解
<?php
$xoc = 12345678;
$a = str_split($xoc, 2);
$i =$a[0] ;
$b = $a[1];
$c = $i ^ $b;
echo $c;
?>
返回空
如果直接用
<?php
$a = 12;
$b = 34
echo $c = $a ^ $b;
?>
这样就可以得到正确的结果。
需要用php处理一串16进制的字符串做异或运算,赋值到数组后计算得到的是空。如果直接复制变量计算的后就能得到正常结果,求解
<?php
$xoc = 12345678;
$a = str_split($xoc, 2);
$i =$a[0] ;
$b = $a[1];
$c = $i ^ $b;
echo $c;
?>
返回空
如果直接用
<?php
$a = 12;
$b = 34
echo $c = $a ^ $b;
?>
这样就可以得到正确的结果。
$xoc = 12345678;
$a = str_split($xoc, 2);//$a的类型是字符串数组,要把里面的字符串转换成整数再做运算
$i =(int)
$a[0] ;
$b =(int)
$a[1];
$c = $i ^ $b;
echo $c;
$i =$a[0] ;
var_dump($i);
// 输出:string '12' (length=2)
$b = $a[1];
var_dump($b);
// 输出:string '34' (length=2)
字符串'12'和'34'异或是按位进行的,就是'1'^'3'、'2'^'4'
'1'^'3'=49(ASCII码)^51(ASCII码)=0011 0001^0011 0011=0000 0010=2(ASCII码)=STX (start of text)
'2'^'4'=50(ASCII码)^52(ASCII码)=0011 0010^0011 0100=0000 0110=6(ASCII码)=Acknowledge (确认)
ASCII码0~31对应的是控制字符,属于不可显示字符,所以显示为空。
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答569 阅读✓ 已解决
785 阅读
str_split后$i成字符串了
$c = (int)$i ^ (int)$b;