小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

Perlでビット処理を配列で行う。

Perlでのビット処理には、ビット演算子やシフト演算子がありますが、機能不足や制限がいろいろあって、思うように処理ができません(機能不足でなく、おまえのスキル不足だろって声が…)。


そこで、ビットの世界をやめ、Perlの得意な配列の世界で処理を行い、再度、ビットの世界へ戻してあげるということを思いつきました。

sub bitByarray {
    my ($str) = @_;   

    # ビットイメージを配列に代入
    my @wk = split(//,(unpack "B*", $str));

    # 本来ビットで処理するところを配列処理する。

    # 配列データをビットイメージに戻す
    return pack("B*", (join "", @wk));
}

実はこれ、結城先生の「数学ガール」のフィボナッチ数列と母関数のくだりを読んでいて、思いつきました。