このページの本文へ

前へ 1 2 次へ

Windows Info 第392回

あらためてWindowsにおける2進数、10進数、16進数について

2023年08月13日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

コマンドラインで2進数、16進数を扱う

 Windows PowerShell(Ver.5.1 以下、WPS)とPowerShell(Ver.7.2、以下、PS7)では16進数を扱うことができる。さらに、PS7では2進数も扱える。まずは、16進数を数値として入力するには前に16進数プリフィックス「0x」を付けて16進数を入力すればよい。この表記は、数値(Int32、符号付き)として解釈されるので、数値が必要な引数のどこにでも置くことができる。

 コマンドラインに直接入力してEnterキーを押せば、10進数に変換された数値を表示できる。これで、簡易に16進数/2進数を10進数に変換できる。また、コマンドラインでそのまま四則演算やmathクラスの関数の引数にすることも可能だ。なお、PS7では、さらに2進数プリフィックス「0b」を使うことができる。

あらためてWindowsにおける2進数、10進数、16進数について

Windows PowerShellでは、16進数プリフィックス「0x」を使って16進数を扱える。PowerShell 7では、さらに2進数プリフィックス「0b」で2進数を扱うことも可能

 このほか、WPSやPS7では、数値の後ろに「KB」「MB」「GB」「TB」「PB」などの「乗数サフィックス」を加えることで、2のべき乗による乗数を付けられる。

あらためてWindowsにおける2進数、10進数、16進数について

 「KB」は、1024倍(2の10乗倍)を示す。たとえば、「4KB」は4096bytesを表す。この乗数サフィックスは、2進数、16進数プリフィックスと同時に使うことができる。たとえば1KBのデータが0x23(=35)個あるなら「0x23KB」とすればよい。

 また、WPS、PS7で数値を16進数、2進数で表現したい場合、ConvertクラスのToStringメソッドを使う。具体的には、

[Convert]::ToString(<数値>、<基数>)

とする。基数は、2、8、10、16のみに対応し、それ以外はエラーになる。また、数値が整数以外の場合には、整数に変換されてから基数変換がなされる。たとえば、「[convert]::ToString(1.45,16)」の答えは「1」になる。

 16進数を扱う頻度が高いなら、

function hex($x) { [Convert]::ToString($x,16) }

などとして、関数を定義してしまったほうがいいかもしれない。

 整数値の場合のみ、以下の書き方ができる。

(<整数リテラル>).ToString("X")
$x.ToString("X")

 2つ目の例では、変数$xには整数が入っているときのみ変換でき、それ以外ではエラーになる。これは、数値の書式表示で16進数を表す「X」を使うもの。「X4」などととして4桁の16進数表示とさせることも可能だ。桁数を指定して16進数にしたいときに使うといいだろう。

 WPSやPS7では、外部のコマンドから文字列として受け取った16進数や2進数を数値に変換したい場合もあるだろう。基本としては、前述とおなじ「[Convert]」クラスの変換メソッドを使い、

[Convert]::ToInt32(<文字列>,<基数>)

とすることで、<文字列>を<基数>に基づいて数値に変換する。ただし、<基数>には、2、8、10、16しか指定することができない。

 また、文字列にすでに2進数、16進数プリフィックスがついた状態なら、

[int]"0x00FF"
[byte]"0b01010101"

として、文字列を数値に変換することができる(「0b」はPS7でのみ可能)。なお、このとき16進数を表す「プレフィックス」として「0x」以外に「#」と「&H」を使うことも可能。「#」は、アセンブラや一部のコマンドで使うことがあり、「&H」は、Microsoft系のBASICなどで使うプリフィックスだ。

あらためてWindowsにおける2進数、10進数、16進数について

[Convert]::ToStringメソッドを使うことで数値を2、8、10、16進数に変換できる。また、書式指定文字「X」を使った16進数変換も可能。文字列にプリフィックスが含まれている場合には、型アクセラレーターを使って直接変化することもできる

 先頭の「[int]」や「[byte]」は、PowerShellでは型アクセラレーターと呼ばれるもので、プログラミング言語でいう「キャスト」に相当するもの。PowerShellでは整数に関しては、以下の表のような型アクセラレーターとConvertクラスの変換メソッドを利用できる。

あらためてWindowsにおける2進数、10進数、16進数について

 そのほか、さまざまなデータ形式に対して型アクセラレーターがある。これに関しては、マイクロソフトのページ(「型アクセラレータについて」)に記載がある。

 ただし、日本語ページでは、本来英文表記である型アクセラレーターの一部が日本語になってしまっている。ページ下にある言語を英語に切り替えれば正しく表示される。

2進数では符号拡張に注意

 PS7で2進数プリフィックスを使って2進数を表現する場合、符号拡張に注意する必要がある。符号拡張とは、型を変換するときに最上位ビットを符号ビットとして変換をすることだ。符号を表す最上位ビットが1であるとすると、変換後も最上位ビットが1になるように変換される。

 たとえば、10進数の255を2進数で表現すると「1111 1111」となるが、そのまま2進数プリフィックスを付けて「0b11111111」とすれば、最上位ビットが1であるとして符号付きInt32に変換される。このため結果は、-1になってしまう。これを防ぐには最上位ビットが0であることを指定して「0b011111111」とする。

あらためてWindowsにおける2進数、10進数、16進数について

PS7で2進数を扱う場合、最上位ビットにより符号の有無が決まる。同じビットパターンでも最上位が0か1かで数値が異なる。型アクセラレーターを使った文字列からの変換でも、型に合致せずエラーになることがある

 2進数文字列と型アクセラレーターを組み合わせる場合、2進数文字列は、型に合致したパターンのみ許される。型アクセラレーター「[byte]」(符号なし8bit整数値)を使うとき、符号なし2進数として、0~255の範囲となっている必要がある。このときに255を指定するには「0b011111111」とする。「0b11111111」では-1になるためエラーとなる。

 なお、ConvertクラスのToInt32などの変換メソッドを使って文字列を数値に変換する場合には、こうした問題は起こらない。

 コンピュータを使っていると、2進数や16進数はいつかは扱わねばならなくなる。10進数への簡単な変換や計算は、Windowsでも簡単にできることは理解しておいてもいいだろう。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事
1
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
¥26,880
2
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,979
3
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
¥134,377
4
Lenovo Chromebook クロームブック IdeaPad Flex 3i Gen8 12.2インチ インテル® プロセッサー N100搭載 メモリ4GB eMMC 64GB バッテリー駆動12.0時間 重量1.25kg アビスブルー 82XH001KJP
Lenovo Chromebook クロームブック IdeaPad Flex 3i Gen8 12.2インチ インテル® プロセッサー N100搭載 メモリ4GB eMMC 64GB バッテリー駆動12.0時間 重量1.25kg アビスブルー 82XH001KJP
¥39,800
5
Apple 2025 MacBook Pro 10 コアCPU、10 コアGPU のM5 チップ搭載ノートパソコン:Apple Intelligence のために設計、14.2 インチLiquid Retina XDR ディスプレイ、24GB ユニファイドメモリ、1TBのSSD ストレージ - スペースブラック
Apple 2025 MacBook Pro 10 コアCPU、10 コアGPU のM5 チップ搭載ノートパソコン:Apple Intelligence のために設計、14.2 インチLiquid Retina XDR ディスプレイ、24GB ユニファイドメモリ、1TBのSSD ストレージ - スペースブラック
¥296,323

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,880
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
¥980
4
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,280
7
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥699
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥5,545
9
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
¥1,980
10
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
¥880

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン