Perlゼミ

  1. Perl
  2. 数値
  3. here

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

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

Perlプログラミングちゃんねるのご紹介

Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「今日も元気だ、Perlで元気。
ゆとりあるITエンジニアライフのために
Perl情報を前向きに発信中!」

Twitter
フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

木本システム株式会社
ご紹介キャンペーン実施中です。契約金額の10%をご紹介料としてお支払い。

(例)30万円のシステム開発委託契約が、1年続いたら、36万円がもらえる!!!