查看Perl笔记的源代码
←
Perl笔记
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== Catalyst 安装 == <pre> $ apt-get install perl perl-modules libcatalyst-perl libcatalyst-modules-perl </pre> <br><br> == 32位位反转 == <source lang=perl> $ cat bit-rev.pl #!/usr/bin/perl sub rev { my $in = shift; $in = ($in & 0x55555555) << 1 | ($in & 0xaaaaaaaa) >> 1; $in = ($in & 0x33333333) << 2 | ($in & 0xCCCCCCCC) >> 2; $in = ($in & 0x0f0f0f0f) << 4 | ($in & 0xf0f0f0f0) >> 4; $in = ($in & 0x00ff00ff) << 8 | ($in & 0xff00ff00) >> 8; $in = ($in & 0x0000ffff) << 16 | ($in & 0xffff0000) >> 16; return $in; } my $d = 0x80008001; printf "d = 0x%08x\n", $d; printf "rd = 0x%08x\n", &rev($d); $ ./bit-rev.pl d = 0x80008001 rd = 0x80010001 </source> <br><br> == 进制转换 == For bash: <source lang=bash> # for bash. your shell is probably different. alias d2h="perl -e 'printf qq|%X\n|, int( shift )'" alias d2o="perl -e 'printf qq|%o\n|, int( shift )'" alias d2b="perl -e 'printf qq|%b\n|, int( shift )'" alias h2d="perl -e 'printf qq|%d\n|, hex( shift )'" alias h2o="perl -e 'printf qq|%o\n|, hex( shift )'" alias h2b="perl -e 'printf qq|%b\n|, hex( shift )'" alias o2h="perl -e 'printf qq|%X\n|, oct( shift )'" alias o2d="perl -e 'printf qq|%d\n|, oct( shift )'" alias o2b="perl -e 'printf qq|%b\n|, oct( shift )'" </source> <br><br> == 字符整数转换 == <source lang=bash> # for bash. your shell is probably different. alias d2c="perl -e 'printf qq|%s\n|, chr( shift )'" alias h2c="perl -e 'printf qq|%s\n|, chr(hex shift )'" alias c2d="perl -e 'printf qq|%u\n|, ord( shift )'" alias c2h="perl -e 'printf qq|0x%x\n|, ord( shift )'" --- comcat@jackslab $ d2c 97 a comcat@jackslab $ c2d b 98 comcat@jackslab $ h2c 61 a comcat@jackslab $ h2c 0x61 a comcat@jackslab $ c2h a 0x61 comcat@jackslab $ c2h b 0x62 </source> <br><br> == 十六进制字符串 == <source lang=perl> $ cat test.pl #!/usr/bin/perl my $seed = 0x52536264; print "seed = " . $seed . "\n"; printf "seed = 0x%x\n", $seed; # bit revert $seed = &rev($seed); printf "seed bit revert = 0x%x\n", $seed; my $id = sprintf("0x%08x", $seed); printf "id = %s\n", $id; printf "decode id = 0x%x\n", &rev(hex $id); $ ./test.pl seed = 1381196388 seed = 0x52536264 seed bit revert = 0x2646ca4a id = 0x2646ca4a decode id = 0x52536264 </source> <br><br> == Resource == * Mastering Perl: http://chimera.labs.oreilly.com/books/1234000001527/index.html * Catalyst Manual: https://metacpan.org/release/Catalyst-Manual * meta cpan: https://metacpan.org/pod/Data::Random * perl doc: http://perldoc.perl.org/ <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br>
返回到
Perl笔记
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面