コンピュータで数を扱う場合、内部では2進数で表現されているため、日常的に使う10進数とは相性があまりよくない。そこで、8進数や16進数といった表記方法で2進数の数値を表現することも多い。
そういうわけでコンピュータと付き合うには、16進数などを理解する必要がある。ここでは確認の意味も含めて、2進数や16進数などの表記方法を解説する。
2進数をいかにコンパクトに表現するか?
コンピュータ内部では、2進数で数値を表現するが、2進数では桁数が多すぎて、扱いが面倒になる。また、会話で2進数を使うのはもっと大変で、聞いても数値を簡単にイメージできない。かといって、10進数と2進数では変換に計算が必要なため、10進数を聞いて、2進数のビットパターンを思い浮かべることには無理がある。
このために8進数や16進数が使われる。これらは2のべき乗を使うため、2進数のビットの区切り位置と8進数、16進数の桁の区切りが一致する。8進数(2の3乗)なら3bit、16進数(2の4乗)なら4bitが対応する。このため、これらの表記と2進数のビットパターンの変換は容易となる。
8進数はミニコンなど、マイクロプロセッサが登場する以前に比較的よく使われていた。0~7の数字を使うため、特殊な文字を定義する必要がなく、3bitならば簡単にビットパターンを覚えられる。しかし、CPUのデータ単位が8bit、16bitといった2のべき乗の場合、3bitでは割り切れず最上位桁が一部のみしか対応しなくなってしまうため、8進数は使いにくい。
これに対して4bitが1桁に対応する16進数は、2のべき乗のデータ単位を区切りよく表示できる。そのためマイクロプロセッサ時代になり、マニュアルやドキュメント類、アセンブラなどのソフトウェアでも16進数が標準的となった。
コンピュータで扱うデータには「型」がある
コンピュータのビットを扱う場合、データ型を意識する必要がある。コンピュータで扱うデータはビット数が決まっており、これを「型」(Type)という。多くのコンピュータでは、8bitを基本にして、16bit、32bit、64bitといった長さの「型」を扱う。
型には、長さ(ビット幅)のほかに、「整数」と「小数点数値」、「符号あり」「符号なし」といった区別がある。これらは基本的にはCPUが処理対象とするデータの型であり、さらにコンピュータ言語で数値を扱う場合の基本的な型として定義される。このため、アプリケーションも内部的には、これらの型を使う。
型には名前がある。広く使われるものは、C言語で定義された型名である。以下の表にWindowsの一般的な型を示す。現在のWindowsでは、intは、32bitの符号付き整数を表すがlongも32bit整数として扱う。
またWindowsでは、16bitをWordと表記し、32bitをDWord(Double Word)、64bitをQWord(Quad Word)とすることがある。これは、インテルCPUのドキュメントで主に使われていた表記だ。
こうした混乱もあるため、ビット数を示す「Int32」(符号つき)、「UInt32」(符号なし)といった型の名前を使うほうが間違いが少ない。逆に単にlongという型名があったとき、コンテキストに注意する必要がある。
GUIで2進数、16進数を扱う
最も簡単にWindowsで2進数や16進数を扱う方法の1つに、標準の「電卓」プログラムが持つ「プログラマー」モードがある(記事冒頭画面)。
「電卓」を起動したら左上のハンバーガーアイコンをクリックして「プログラマー」を選択する。ここでは、ウィンドウ左中程で、数値の表示、入力方法を「HEX」(16進数)、「DEC」(10進数)、「OCT」(8進数)、「BIN」(2進数)から選択し、データ型をラインの上、ウィンドウ中央部で「BYTE」(8bit)、「WORD」(16bit)、「DWORD」(32bit)、「QWORD」(64bit)から選択する。
手動で演算する必要はあるが、簡単な基数変換や演算だけなら、これでも十分だ。
この連載の記事
-
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 -
第447回
PC
この秋登場のWindows 11の新バージョン、Ver.24H2の状況を見る - この連載の一覧へ