我正在解析一个html文档,并且有一个变量var key = 0xa9
例如,我确实使用了我的正则表达式,但是我得到的0xa9
作为字符串存储在变量中,是否有任何演员函数或任何东西将其转换为数字?
编辑:
我确信我没有很好地解释自己,这就是我一直在努力做的事情:
$t = $t . chr ( ord(substr($e, $i, 1)) ^ $var);
但是$var = "0xa9"
或其他什么,它是一个字符串,所以在上一个操作中我确实得到一个错误Argument "0xc2" isn't numeric in bitwise xor (^) at
,这就是为什么我想要完全相同的值但不是作为字符串,为了工作,$ var需要像$var = 0xa9
一样。
答案 0 :(得分:4)
尝试
print hex '0xAf'; # prints '175'
来自perldoc
hex
Interprets EXPR as a hex string and returns the corresponding value.
(To convert strings that might start with either 0 , 0x , or 0b, see oct.)
If EXPR is omitted, uses $_ .
答案 1 :(得分:2)
请试试这个:
print hex $string
答案 2 :(得分:1)
尝试将0x0
添加到$var
。它应该将XOR运算中的第二个操作数转换为数值。
$t = $t . chr ( ord(substr($e, $i, 1)) ^ ($var + 0x0));