【发布时间】:2019-01-15 08:24:53
【问题描述】:
我在使用 xor 运算符时遇到了一些问题。
我有一个 Visual Basic 应用程序,它具有这一行的功能:
numeroCaracter = Asc(password.Substring(contador, 1)) Xor Asc(CadenaEncriptacion.Substring(contador, 1))
password是函数接收的字符串,CadenaEncriptacion就是这个常量:
Private Const CadenaEncriptacion As String = "eNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaYeNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaYeNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaYeNcRiPtAcIoNmUyChUlAyGuAyDeLpArAgUaY"
我需要将函数翻译成 PHP,我用这种方式翻译了那行:
$numeroCaracter = ord(substr($password, $contador, 1)) xor ord(substr($CadenaEncriptacion, $contador, 1));
PHP 中的 ord 函数和 vb 中的 Asc 函数在两种语言中给出相同的值,但 numeroCaracter 在 PHP 和 VB 中具有不同的值,通过 XOR 运算符...
在 php 中,numeroCaracer 始终是每个字符的 ord 值,在 vb 中,asc 函数给我其他值。
谢谢!
【问题讨论】:
-
关键字 - 运算符优先级。
-
如果其他人有这个问题,这个链接可能很有用:php.net/manual/en/language.operators.precedence.php