2進数、8進数、16進数での数値表現



  1. Perl




  2. 数値



  3. here

2進数、8進数、16進数での数値の表現を解説します。

2進数

0b を先頭につけると2進数で数値を指定できます。

my $num_bin = 0b1111;
8進数

0を先頭につけると8進数で数値を指定できる。

my $num_oct = 0777;
16進数

0x を先頭につけると16進数で数値を指定できる。

my $num_hex = 0xFFFF;
10進数を2進数、8進数、16進数の出力

2進数、8進数、16進数で出力したい場合は、printf関数でフォーマット指定を行い出力します。%bで2進数、%oで8進数、%xで16進数(小文字)、%Xで16進数(大文字) で出力できます。

# %b で2進数表示で出力
printf("\$num_bin = %b\n", $num_bin);

# %o で8進数表示で出力
printf("\$num_oct = %o\n", $num_oct);

# %x で16進数表示で出力(小文字)
printf("\$num_hex = %x\n", $num_hex);

# %X で16進数表示で出力(大文字)
printf("\$num_hex = %X\n", $num_hex);

サンプル

2進数、8進数、16進数を使ったサンプルです。

use strict;
use warnings;

# 0b を先頭につけると2進数で数値を指定できる。
my $num_bin = 0b1111;

# 0を先頭につけると8進数で数値を指定できる。
my $num_oct = 0777;

# 0x を先頭につけると16進数で数値を指定できる。
my $num_hex = 0xFFFF;


# 2進数、8進数、16進数で表現した数値リテラルはprintすると10進数になります。
print "(1)10進数での値\n";
print "\$num_bin = $num_bin\n"; 
print "\$num_oct = $num_oct\n";
print "\$num_hex = $num_hex\n";

print "\n";

print "(2)それぞれの進数で出力\n";

# %b で2進数表示で出力
printf("\$num_bin = %b\n", $num_bin);

# %o で8進数表示で出力
printf("\$num_oct = %o\n", $num_oct);

# %x で16進数表示で出力(小文字)
printf("\$num_hex = %x\n", $num_hex);

# %X で16進数表示で出力(大文字)
printf("\$num_hex = %X\n", $num_hex);



  1. Perl




  2. 数値



  3. here