PowerShell: 「10進数」⇔「2進数」相互変換する
PowerShellで10進数と2進数を相互変換する方法を紹介します。 10進数から2進数へ変換するにはToStringメソッド、 2進数から10進数へ変換するにはToInt32メソッドを使用します。 どちらも.NET Framework Convertクラスのメソッドです。
「10進数」を「2進数」へ変換
10進数を2進数に変換する場合はToStringメソッドを使います。
書式
[convert]::ToString(10進数の数値, 2)
第2引数に変換したい基数の「2」を指定します。
ToStringメソッドを利用して10進数の1, 2, 7, 8を 2進数に変換します。
[convert]::ToString(1, 2) # 1 [convert]::ToString(2, 2) # 10 [convert]::ToString(7, 2) # 111 [convert]::ToString(8, 2) # 1000
「2進数」を「10進数」へ変換
2進数を10進数に変換する場合はToInt32メソッドを使います。
書式
[convert]::ToInt32( 2進数の文字列, 2)
第1引数に2進数の文字列("10"や"1101"等)を指定し、 第2引数に第1引数で指定した数の基数(ここでは2進数なので2)を指定します。
ToInt32メソッドを利用して2進数の1, 10, 111, 1000を10進数に 変換します。
[convert]::ToInt32( "1", 2) # 1 [convert]::ToInt32( "10", 2) # 2 [convert]::ToInt32( "111", 2) # 7 [convert]::ToInt32( "1000", 2) # 8
注意点として、 第1引数で2進数の文字列を指定する際に、 プレフィックスの"0b"を付けるとエラーになります。 次のコードではエラーが発生します。
# 0bを付加 [convert]::ToInt32( "0b1", 2) # エラー
参考サイト
Convert クラス (System) | Microsoft Docs