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