免费注册 查看新帖 |

Chinaunix

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

用什么命令能把十进制数转化成二进制的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-27 13:32 |只看该作者 |倒序浏览
虽然有个sort函数,排序很方便,但是它是从左往有排序的,这样11会排在2的前面。

是否把十进制数转换成二进制的就能排序了?那么用什么函数作这个转化呢?

论坛徽章:
0
2 [报告]
发表于 2005-12-27 14:55 |只看该作者
原帖由 cuculu 于 2005-12-27 13:32 发表
虽然有个sort函数,排序很方便,但是它是从左往有排序的,这样11会排在2的前面。

print sort {$a<=>$b} @data;

论坛徽章:
0
3 [报告]
发表于 2005-12-27 21:35 |只看该作者
10进制变2进制
$a=sprintf("%b",$a)+0;

论坛徽章:
0
4 [报告]
发表于 2005-12-29 15:36 |只看该作者
原帖由 RobinHoo 于 2005-12-27 21:35 发表
$a=sprintf("%b",$a)+0;



我这里不行啊,$a 一直是0

论坛徽章:
0
5 [报告]
发表于 2005-12-29 16:34 |只看该作者
$a要给值才行的。

论坛徽章:
0
6 [报告]
发表于 2005-12-30 13:38 |只看该作者
原帖由 怒剑狂啸 于 2005-12-29 16:34 发表
$a=10;
$a=sprintf("%b",$a)+0;
printf "\$a=$a";


这样打印出来的结果是:

$a=0

怎么实现RobinHoo所说的进制转换?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-12-30 13:46 |只看该作者
#!/usr/bin/perl
$a = 11;
$a=sprintf("%b",$a)+0;
print "$a\n";

$abc = unpack("B*",pack("C",11));
print "$abc\n";

这方式也行用unpack...

论坛徽章:
0
8 [报告]
发表于 2005-12-30 18:10 |只看该作者
可以的哇!

C:\>more test.pl
#!/usr/bin/perl -w
$a=10;
$a=sprintf("%b",$a)+0;
print $a."\n";

C:\>perl test.pl
1010

C:\>

论坛徽章:
0
9 [报告]
发表于 2006-01-03 18:32 |只看该作者
不可以的哇!

/perl>cat bin.pl
#!/usr/bin/perl -w
$a=10;
$a=sprintf("%b",$a)+0;
print $a."\n";

$abc = unpack("B*",pack("C",11));
print "$abc\n";


/perl>bin.pl
Invalid conversion in sprintf: "%b" at bin.pl line 3.
Argument "%b" isn't numeric in add at bin.pl line 3.
0
00001011

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
10 [报告]
发表于 2006-01-04 09:09 |只看该作者
我给的有显示啊..只是多了前面的四个0......
至於sprintf为什麽不行..不知道...也许跟perl版本有关系...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP