免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3061 | 回复: 9
打印 上一主题 下一主题

求助:异或后显示字符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-12 11:03 |只看该作者 |倒序浏览
5可用积分
代码如下:
<?
$arr_str=arrary('15','16','42');
$key = 'G';                              
for($i=0;$i<length($arr_str);$i++)
{
echo $arr_str[$i] xor $key;
}
?>
目的是对数组中的数(数组中的数字是16进制数)与G进行异或;然后把结果用ASCII码返回出来。
chr,ord,dechex,hexdec全用过了,还是没出来。彻底搞乱了……

最佳答案

查看完整内容

有问题吗?hexdec 把十六进转化成十进制 然后和十进制的 'G' 异或[ 本帖最后由 shitou254 于 2008-12-12 14:26 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-12-12 11:03 |只看该作者

回复 #7 aredfox 的帖子

有问题吗?hexdec  把十六进转化成十进制 然后和十进制的 'G' 异或
<?
$arr_str=array('15','16','42');
$key = 'G';
$x = '';
foreach ($arr_str as $k) {
&nbsp;&nbsp;&nbsp;&nbsp;//echo intval($k);

&nbsp;&nbsp;&nbsp;&nbsp;//echo 'x';

&nbsp;&nbsp;&nbsp;&nbsp;//echo hexdec($k);

&nbsp;&nbsp;&nbsp;&nbsp;echo (hexdec($k) ^ ord($key));
&nbsp;&nbsp;&nbsp;&nbsp;echo ':';
}

?>


[ 本帖最后由 shitou254 于 2008-12-12 14:26 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-12-12 12:59 |只看该作者

回复 #1 aredfox 的帖子

<?
$arr_str=array('15','16','42');
$key = 'G';
$x = '';
foreach ($arr_str as $k) {
&nbsp;&nbsp;&nbsp;&nbsp;echo ord($k ^ $key);
&nbsp;&nbsp;&nbsp;&nbsp;echo ':';
}

?>

论坛徽章:
0
4 [报告]
发表于 2008-12-12 13:53 |只看该作者
楼上的 $k ^ $key 应改为 hexdec($k) ^ $key   或 hexdec($k) ^ ord($key)

论坛徽章:
0
5 [报告]
发表于 2008-12-12 13:56 |只看该作者

回复 #2 shitou254 的帖子

返回结果118:118:115:

论坛徽章:
0
6 [报告]
发表于 2008-12-12 14:04 |只看该作者

回复 #4 aredfox 的帖子

你希望返回什么呢?? 哦对 还需要一次 十进制转化 十六进制 hexdec($k)

[ 本帖最后由 shitou254 于 2008-12-12 14:07 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2008-12-12 14:05 |只看该作者
看似问题还是主要在如何把字符串15变成十六进制数15上

论坛徽章:
0
8 [报告]
发表于 2008-12-12 14:10 |只看该作者
0x15和0x47(G的ascii码)异或的结果,ASCII码显示

论坛徽章:
0
9 [报告]
发表于 2008-12-12 14:36 |只看该作者

回复 #8 shitou254 的帖子

<?
$arr_str=array('15','16','42');
$key = 'G';
$x = '';
foreach ($arr_str as $k) {
   echo hexdec($k) ^ $key;
echo ':';
}

?>
结果是21:22:66:
简单计算一下0x15和0x47(G)的结果是0x52,十进制82,对应ACSII码字符为R
显示什么没关系,主要是结果正确。

论坛徽章:
0
10 [报告]
发表于 2008-12-12 16:57 |只看该作者
:S 我在4楼的提示竟然被忽略飘过~~ 你们修改了原帖后, 使得我的帖子看起来是多余或错误的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP