2013-10-01 57 views
-3

我解析一個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例如。

回答

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 $_ . 
+0

我想要'0xAf'在'xor'操作中使用它:/,但我確實是將它作爲一個字符串來代替。 – Mugiwara

+3

如果我正確理解你的評論,你應該嘗試添加結果爲'十六進制('0xAf')+ 0'有一個數字結果 – psxls

+0

請看看我的編輯。 – Mugiwara

2

請試試這個:

print hex $string

+0

請看我的編輯。 – Mugiwara

1

嘗試增加0x0$var。它應該將XOR操作中的第二個操作數轉換爲數值。

$t = $t . chr (ord(substr($e, $i, 1))^($var + 0x0)); 
+0

不,它不工作,它只是需要十六進制($ var),因爲每個人都建議^^; – Mugiwara

相關問題