高分求PHP代码解释 楼主不要太懒啊。都是星星的人物了。此代码并没有太多的难度吧。。参照手册看吧。。http://cn.php.net/manual/zh/index.php 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 global $HexTable;//全局數組。$HexTable[0]%2 != 0//求余其它的都是位运算和迭代,会c就会懂了。ord()这个函数返回第一个字母的ASCII码。你这个代码应该是不全的。 帅哥哥,代码肯定是全的,但是我一点点都不会PHP啊,这是一段加密算法啊。拜托各位老大了~~什么>>和|我都没有接触过这些运算符号,麻烦啦。很着急啊~ 朋友帮忙翻译的,有些地方我们都不明白function ConvertChar(CByte) public HexTable Flag1 = HexTable(1) & 1 --------这里对不对阿 ,&是什么运算符 Flag2 = HexTable(2) & 1 localChar = 0 for i=8 to 1 step -1 if HexTable(0) mod 2 <> 0 HexTable(0) = ((HexTable(0)^HexTable(3))>>1) | HexTable(9) '--------这里不明白,((HexTable(0)^HexTable(3))>>1) | HexTable(9)?? if HexTable(1) mod 2 <> 0 HexTable(1) = ((HexTable(1)^HexTable(4))>>1) | HexTable(10) '--------这里不明白((HexTable(1)^HexTable(4))>>1) | HexTable(10) Flag1 = 1 else HexTable(1) = (HexTable(1)>>1) & HexTable(7) '--------这里不明白(HexTable(1)>>1) & HexTable(7) Flag1 = 0 end if else HexTable(0) = (HexTable(0)>>1) & HexTable(6)'--------这里不明白 if HexTable(2) %2 <>0 HexTable(2) = ((HexTable(2)^HexTable(5))>>1 )| HexTable(11)'--------这里不明白 Flag2 =1 else HexTable(2) = (HexTable(2)>>1) & HexTable(8)'--------这里不明白 Flag2 =0 end if end if localChar = (localChar <<1) | (Flag1 ^ Flag2)'--------这里不明白 Next TempInt = localChar ^ asc(CByte) return iif(TempInt==0 ,localChar ,TempInt )End Function 另外^是什么运算符号??N次方? 统计了一下:简单得问一下:1、运算符号^和&在PHP是做什么的?2、((HexTable(1)^HexTable(4))>>1) | HexTable(10)整体是什么运算??包括>>和|是什么运算符号?3、 (HexTable(0)>>1) & HexTable(6)整体是什么运算?? ASP有移位运算符吗?没听说过好像你朋友翻译的肯定是错的。总之就是把& 换成and 把 | 换成 or 把 ^ 换成 xor 把 << 1换成 * 2 把 >>1 换成 \2就行了----------------------------------function ConvertChar(CByte)public HexTableFlag1 = HexTable(1) and 1 --------这里对不对阿 ,&是什么运算符Flag2 = HexTable(2) and 1localChar = 0for i=8 to 1 step -1if HexTable(0) mod 2 <> 0HexTable(0) = ((HexTable(0) xor HexTable(3)) \ 2) or HexTable(9)if HexTable(1) mod 2 <> 0HexTable(1) = ((HexTable(1) xor HexTable(4)) \ 2) or HexTable(10)Flag1 = 1elseHexTable(1) = (HexTable(1) \ 2 ) and HexTable(7)Flag1 = 0end ifelseHexTable(0) = (HexTable(0) \ 2) and HexTable(6)if HexTable(2) mod 2 <>0HexTable(2) = ((HexTable(2) xor HexTable(5)) \ 2 ) or HexTable(11)Flag2 =1elseHexTable(2) = (HexTable(2) \ 2) and HexTable(8)Flag2 =0end ifend iflocalChar = (localChar * 2) or (Flag1 xor Flag2)NextTempInt = localChar xor asc(CByte)ConvertChar = iif(TempInt=0 ,localChar ,TempInt )End Function ASP有移位运算符吗?没听说过好像你朋友翻译的肯定是错的。总之就是把& 换成and 把 | 换成 or 把 ^ 换成 xor 把 << 1换成 * 2 把 >>1 换成 \2就行了----------------------------------function ConvertChar(CByte)public HexTableFlag1 = HexTable(1) and 1 --------这里对不对阿 ,&是什么运算符Flag2 = HexTable(2) and 1localChar = 0for i=8 to 1 step -1if HexTable(0) mod 2 <> 0HexTable(0) = ((HexTable(0) xor HexTable(3)) \ 2) or HexTable(9)if HexTable(1) mod 2 <> 0HexTable(1) = ((HexTable(1) xor HexTable(4)) \ 2) or HexTable(10)Flag1 = 1elseHexTable(1) = (HexTable(1) \ 2 ) and HexTable(7)Flag1 = 0end ifelseHexTable(0) = (HexTable(0) \ 2) and HexTable(6)if HexTable(2) mod 2 <>0HexTable(2) = ((HexTable(2) xor HexTable(5)) \ 2 ) or HexTable(11)Flag2 =1elseHexTable(2) = (HexTable(2) \ 2) and HexTable(8)Flag2 =0end ifend iflocalChar = (localChar * 2) or (Flag1 xor Flag2)NextTempInt = localChar xor asc(CByte)ConvertChar = iif(TempInt=0 ,localChar ,TempInt )End Function 不能直譯的,&在vbs中是連接符,而在php是与,^是php是异或,在vbs是乘方。$a & $b And(按位与) 将在 $a 和 $b 中都为 1 的位设为 1。 $a | $b Or(按位或) 将在 $a 或者 $b 中为 1 的位设为 1。 $a ^ $b Xor(按位异或) 将在 $a 和 $b 中不同的位设为 1。 ~ $a Not(按位非) 将 $a 中为 0 的位设为 1,反之亦然。 $a << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。 $a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。 http://cn.php.net/manual/zh/language.operators.php是位运算符,我刚才给出的手册里有啊。看上面的地址。 vbs是没有位运算符的,把位移直接除2也是在无符号运算时才会对,要是有符号运算就会溢出。 substr 和 chr怎么转换,是什么函数??谢谢 lisoon((水翡草芥--突然想去扫街)) ,回头给分!~ php如何静态化 城市联动循环输出问题 phpeclipse 数组$_gc=1 2 3 我现在加了,号变成了1,2,3, 最终需求是1,2,3 请问怎么做 swfupload上传后的文件传哪里去了,请高手指点 为何我的服务端的存储session文件大小只有0kb,打开也是空白 <?后面一定要加php吗? 新手求助:zip_open函数不能用 请教php程序不正常执行的问题。 表单提交错误后返回如何保持提交信息,而不是消除掉? 怎么把一个连接的地址传给一个变量?小弟超级菜鸟! 有哪位高手做过paypal支付的,能否告诉我其中的运作原理
$HexTable[0]%2 != 0//求余
其它的都是位运算和迭代,会c就会懂了。
ord()这个函数返回第一个字母的ASCII码。
你这个代码应该是不全的。
拜托各位老大了~~
什么>>和|我都没有接触过这些运算符号,麻烦啦。很着急啊~
function ConvertChar(CByte)
public HexTable
Flag1 = HexTable(1) & 1 --------这里对不对阿 ,&是什么运算符
Flag2 = HexTable(2) & 1
localChar = 0 for i=8 to 1 step -1
if HexTable(0) mod 2 <> 0
HexTable(0) = ((HexTable(0)^HexTable(3))>>1) | HexTable(9)
'--------这里不明白,((HexTable(0)^HexTable(3))>>1) | HexTable(9)??
if HexTable(1) mod 2 <> 0
HexTable(1) = ((HexTable(1)^HexTable(4))>>1) | HexTable(10)
'--------这里不明白((HexTable(1)^HexTable(4))>>1) | HexTable(10)
Flag1 = 1
else
HexTable(1) = (HexTable(1)>>1) & HexTable(7)
'--------这里不明白(HexTable(1)>>1) & HexTable(7)
Flag1 = 0
end if
else
HexTable(0) = (HexTable(0)>>1) & HexTable(6)'--------这里不明白
if HexTable(2) %2 <>0
HexTable(2) = ((HexTable(2)^HexTable(5))>>1 )| HexTable(11)'--------这里不明白
Flag2 =1
else
HexTable(2) = (HexTable(2)>>1) & HexTable(8)'--------这里不明白
Flag2 =0
end if
end if localChar = (localChar <<1) | (Flag1 ^ Flag2)'--------这里不明白
Next TempInt = localChar ^ asc(CByte)
return iif(TempInt==0 ,localChar ,TempInt )
End Function
另外^是什么运算符号??N次方?
简单得问一下:
1、运算符号^和&在PHP是做什么的?
2、((HexTable(1)^HexTable(4))>>1) | HexTable(10)整体是什么运算??包括>>和|是什么运算符号?
3、 (HexTable(0)>>1) & HexTable(6)整体是什么运算??
你朋友翻译的肯定是错的。
总之就是把& 换成and 把 | 换成 or 把 ^ 换成 xor 把 << 1换成 * 2 把 >>1 换成 \2就行了
----------------------------------
function ConvertChar(CByte)public HexTableFlag1 = HexTable(1) and 1 --------这里对不对阿 ,&是什么运算符
Flag2 = HexTable(2) and 1
localChar = 0for i=8 to 1 step -1
if HexTable(0) mod 2 <> 0
HexTable(0) = ((HexTable(0) xor HexTable(3)) \ 2) or HexTable(9)
if HexTable(1) mod 2 <> 0
HexTable(1) = ((HexTable(1) xor HexTable(4)) \ 2) or HexTable(10)
Flag1 = 1
else
HexTable(1) = (HexTable(1) \ 2 ) and HexTable(7)
Flag1 = 0
end if
else
HexTable(0) = (HexTable(0) \ 2) and HexTable(6)
if HexTable(2) mod 2 <>0
HexTable(2) = ((HexTable(2) xor HexTable(5)) \ 2 ) or HexTable(11)
Flag2 =1
else
HexTable(2) = (HexTable(2) \ 2) and HexTable(8)
Flag2 =0
end if
end iflocalChar = (localChar * 2) or (Flag1 xor Flag2)
NextTempInt = localChar xor asc(CByte)
ConvertChar = iif(TempInt=0 ,localChar ,TempInt )
End Function
你朋友翻译的肯定是错的。
总之就是把& 换成and 把 | 换成 or 把 ^ 换成 xor 把 << 1换成 * 2 把 >>1 换成 \2就行了
----------------------------------
function ConvertChar(CByte)public HexTableFlag1 = HexTable(1) and 1 --------这里对不对阿 ,&是什么运算符
Flag2 = HexTable(2) and 1
localChar = 0for i=8 to 1 step -1
if HexTable(0) mod 2 <> 0
HexTable(0) = ((HexTable(0) xor HexTable(3)) \ 2) or HexTable(9)
if HexTable(1) mod 2 <> 0
HexTable(1) = ((HexTable(1) xor HexTable(4)) \ 2) or HexTable(10)
Flag1 = 1
else
HexTable(1) = (HexTable(1) \ 2 ) and HexTable(7)
Flag1 = 0
end if
else
HexTable(0) = (HexTable(0) \ 2) and HexTable(6)
if HexTable(2) mod 2 <>0
HexTable(2) = ((HexTable(2) xor HexTable(5)) \ 2 ) or HexTable(11)
Flag2 =1
else
HexTable(2) = (HexTable(2) \ 2) and HexTable(8)
Flag2 =0
end if
end iflocalChar = (localChar * 2) or (Flag1 xor Flag2)
NextTempInt = localChar xor asc(CByte)
ConvertChar = iif(TempInt=0 ,localChar ,TempInt )
End Function
$a | $b Or(按位或) 将在 $a 或者 $b 中为 1 的位设为 1。
$a ^ $b Xor(按位异或) 将在 $a 和 $b 中不同的位设为 1。
~ $a Not(按位非) 将 $a 中为 0 的位设为 1,反之亦然。
$a << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示“乘以 2”)。
$a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示“除以 2”)。