Perl笔记

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
第4行: 第4行:
 
$ apt-get install perl perl-modules libcatalyst-perl libcatalyst-modules-perl
 
$ apt-get install perl perl-modules libcatalyst-perl libcatalyst-modules-perl
 
</pre>
 
</pre>
 +
 +
<br><br>
 +
 +
== 位反转 ==
 +
 +
<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;
 +
 +
$ ./bit-rev.pl
 +
d = 0x80008001
 +
rd = 0x80010001
 +
</source>
  
 
<br><br>
 
<br><br>

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

1 Catalyst 安装

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



2 位反转

$ 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;

$ ./bit-rev.pl
d = 0x80008001
rd = 0x80010001



3 Resource































个人工具
名字空间

变换
操作
导航
工具箱