Perl笔记

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(位反转)
(位反转)
第7行: 第7行:
 
<br><br>
 
<br><br>
  
== 位反转 ==
+
== 32位位反转 ==
  
 
<source lang=perl>
 
<source lang=perl>

2014年12月25日 (四) 08:27的版本

1 Catalyst 安装

$ apt-get install perl perl-modules libcatalyst-perl libcatalyst-modules-perl



2 32位位反转

$ 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



3 Resource































个人工具
名字空间

变换
操作
导航
工具箱