免费注册 查看新帖 |

Chinaunix

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

如何以十六进制显示字符串 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-08-15 13:13 |只看该作者 |倒序浏览
貌似是一个很简单的问题,
但就是不知道怎么搞
如:
$temp="\xAB\xCD\xEF";#一个二进制串

如何打印出$temp,像这样:
\xAB\xCD\xEF

论坛徽章:
0
2 [报告]
发表于 2008-08-15 13:22 |只看该作者

  1. my $temp = '\XAB';
  2. print $temp,"\n";
复制代码

论坛徽章:
0
3 [报告]
发表于 2008-08-15 13:25 |只看该作者

回复 #1 wellfroggy 的帖子

题目看的有点晕乎.....
#!/usr/bin/perl -w
my $temp="\xAB\xCD\xEF";
$temp=spritf("%x",$temp);
print"$temp\n";

是不是这样?把它强制用16进制表示?

论坛徽章:
0
4 [报告]
发表于 2008-08-15 13:35 |只看该作者
二楼你用了单引号我也知道,但实际环境中$temp是一个二进制串,所以你的技巧不行……
3楼你的结果是0

论坛徽章:
0
5 [报告]
发表于 2008-08-15 13:52 |只看该作者
printf

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

回复 #4 wellfroggy 的帖子

我刚才也测试过
#!/usr/bin/perl -w
my $temp="0b11111111";#255
$temp=sprintf("%x",$temp);
print"$temp\n";

它显示是:Argument "0b11111111" isn't numeric in sprintf at ./test1.pl line 3.
这明显它没有将0b11111111当做2进制数来处理,所以现在结果为0;

但是如果我这么写就能显示
#!/usr/bin/perl -w
#my $temp="0b11111111";#255
$temp=sprintf("%x",0b11111111);
print"$temp\n";

这样的话显示结果为 ff;
所以现在问题关键转移到如何把二进制数赋给变量,并让它知道这是个2进制数!

本人不才,希望前辈给些指点;

论坛徽章:
0
7 [报告]
发表于 2008-08-15 14:57 |只看该作者
顶个!
谁能帮忙解答一下,
如何给一个变量赋上一个2进制变量?如
#!/usr/bin/perl -w
my $temp="0b11111111";#255
$temp=sprintf("%x",$temp);
print"$temp\n";

它显示是:Argument "0b11111111" isn't numeric in sprintf at ./test1.pl line 3.

这就提示系统并没有将$temp当做一个2进制数处理,谁帮解答一下?

论坛徽章:
0
8 [报告]
发表于 2008-08-15 15:10 |只看该作者
是不是要encode 这些的。

论坛徽章:
0
9 [报告]
发表于 2008-08-15 15:15 |只看该作者
OK 解决了!
#!/usr/bin/perl -w
my $temp=0b11111111;#255
$temp=sprintf("%x",$temp);
print"$temp\n";

原来在把2进制数赋值给变量时,不要加上双引号或单引号,具体原因要查一下,但是这样就能显示结果为:ff

论坛徽章:
0
10 [报告]
发表于 2008-08-15 16:50 |只看该作者
yingweixu
这位大哥,你只是把一个数(如255)以16进制显示而已,
而我是一个很长的二进制串,如读入二进制文件的一行,
即每个字节以16进制显示……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP