Perlで16進数を2進数に変換する
Perlで16進数を2進数に変換する方法を紹介します。
このエントリーはPerlビギナーの方向けの内容です。
1.16進数を2進数に変換する
16進数を2進数に変換するには、16進数の文字列をpack()を使ってバイナリ文字列に変換し、さらにunpack()を使って2進数の文字列に変換します。
16進数2文字の場合は8ビット展開されるよう、次のようにします。
#!/usr/bin/perl
use strict;
my $num = unpack("B8", pack("H2", "7B"));
print "$num\n";
実行結果
01111011
「7F」の部分に変換元の16進数を設定します。
16進数4文字の場合は16ビット展開されるよう、次のようにします。
#!/usr/bin/perl
use strict;
my $num = unpack("B16", pack("H4", "F7AC"));
print "$num\n";
実行結果
1111011110101100
「F7AC」の部分に変換元の16進数を設定します。
2.16進数の桁数が動的に変わる場合
16進数の桁数が動的に変わる場合、pack()やunpack()の第1パラメータを動的に変更するには次のようにするとよいでしょう。
#!/usr/bin/perl
use strict;
my $hex = 'F7AC';
my $hex_length = length( $hex );
my $bin_length = $hex_length * 4;
my $num = unpack("B" . $bin_length, pack("H" . $hex_length, $hex ));
print "$num\n";
Posted by yujiro このページの先頭に戻る
- Perlでansibleライブラリを作成する方法
- perlのCPANモジュールからRPMを作成する方法
- Perlで「Subroutine permission redefined at~」を抑止する方法
- XML::Simpleのインストールでエラーになる場合の対処
- YAML::Tinyで「YAML::Tiny found bad indenting in line~」というエラーになる場合の対処
- Perlの正規表現を使って文字列をまとめて取得する方法
- Perlのハッシュでキーの有無を調べる方法
- perlで配列の途中の要素を削除する方法
- YAML::Tinyでコロンを利用する方法
- Perlで改行コードがCRのファイルを読み込む方法
- Perlで「Possible precedence issue with control flow operator」という警告の対処
- PerlのLWPで「Can't verify SSL peers without knowing which Certificate Authorities to trust」というエラーになったときの対処
- Perl+Windowsでファイルを再帰的にリネームする方法
- Perlプログラムの中でファイルの一部を書き換える方法
- Perlの「Bareword "%s" not allowed while "strict subs" in use~」というエラーについて
トラックバックURL
コメントする
greeting