2013年1月2日水曜日

[Perl]文字列, 10 進数, 16 進数, 2 進数の変換

unpack, sprintf を使用して文字列を ASCII コードに変換したり、10 進数, 16 進数, 2 進数間の変換をすることができる。
use strict;
use utf8;
my $hex, my $dec, my $bin;
# A を 0x41 に変換
$hex = unpack("H2", "A");
print("A -> 0x$hex\n");
# AB を 0x4142 に変換
$hex = unpack("H*", "AB");
print("AB -> 0x$hex\n");
# 10 を 0x0A に変換
$hex = sprintf("%02X", 10);
print("10 -> 0x$hex\n");
# 0x30 を 48 に変換
$dec = sprintf("%d", 0x30);
print("0x30 -> $dec\n");
# 6 を 0110b に変換
$bin = sprintf("%04b", 6);
print("6 -> $bin\n");
出力結果
> perl convert_char_hex_dec_bin.pl
A -> 0x41
AB -> 0x4142
10 -> 0x0A
0x30 -> 48
6 -> 0110

0 件のコメント:

コメントを投稿