PowerShell: 「10進数」⇔「16進数」相互変換する

PowerShellで10進数と16進数を変換する場合は、 .NET Framework Convertクラスのメソッドを使用します。 10進数を16進数へ変換するにはToStringメソッド、 16進数を10進数へ変換するにはToInt32メソッドを使います。

「10進数」を「16進数」へ変換

10進数を16進数に変換する場合はToStringメソッドを使います。 書式は次の通りです。

書式
[convert]::ToString(10進数の数値, 16)

第2引数に基数の「16」を指定します。

次のサンプルコードでは、 ToStringメソッドを使って10進数の15, 16, 255, 256を 16進数に変換しています。

[convert]::ToString(15, 16)  # f
[convert]::ToString(16, 16)  # 10
[convert]::ToString(255, 16) # ff
[convert]::ToString(256, 16) # 100

「16進数」を「10進数」へ変換

16進数を10進数に変換する場合はToInt32メソッドを使います。 書式は次の通りです。

書式
[convert]::ToInt32( 16進数の文字列, 16)

第1引数に16進数の文字列("F"や"1A"等)を指定し、 第2引数に第1引数で指定した数の基数(ここでは16)を指定します。

次のサンプルコードでは、 ToInt32メソッドを使って16進数のF, 10, FF, 100を 10進数に変換しています。

[convert]::ToInt32( "F", 16)   # 15
[convert]::ToInt32( "10", 16)  # 16
[convert]::ToInt32( "FF", 16)  # 255
[convert]::ToInt32( "100", 16) # 256

第1引数に指定する16進数の先頭に"0x"が付いていても 変換できます。

[convert]::ToInt32( "0xF", 16)   # 15
[convert]::ToInt32( "0x10", 16)  # 16
[convert]::ToInt32( "0xFF", 16)  # 255
[convert]::ToInt32( "0x100", 16) # 256

参考サイト
Convert クラス (System) | Microsoft Docs

PowerShell