10進数を16進数に変換する

ほとんどのプログラム言語では、10進数を16進数に変換するビルトイン関数を備えています。

例えば、VBAではHex関数を使用すれば10進数を16進数に変換できます。

10進数の「1000」は16進数の「3E8」であることが分かります。

Hex(1000)

3E8

目次

10進数から16進数への変換原理

10進数から16進数への変換原理を詳しく理解しましょう

1000を16で割った余りを計算します。1000 mod 16 = 8。これが1桁目になります。

1000を16で割った「商」を計算します。Int(1000 / 16) = 62。この数を以降の計算で使います。

62を16で割った余りを計算します。62 mod 16 = 14(E)。これが2桁目になります。

62を16で割った「商」を計算します。Int(62 / 16) = 3。この数を以降の計算で使います。

3を16で割った余りを計算します。3 mod 16 = 3。これが1桁目になります。

3を16で割った「商」を計算します。割る対象の数が16より小さい、つまり商が0になったため終了します。

この計算により、1000(10進数) = 3E8(16進数) であることが分かります。

10進数から16進数への変換関数を自作してみましょう

Public Function DecToHexLegacy(dec As Long) As String
    Dim hex As String
    Dim r As Long: r = dec
    Do
        hex = DecToHex_(r Mod 16) & hex
        r = r \ 16 'r = Int(r / 16)
    Loop Until r = 0
    DecToHexLegacy = hex
End Function

Private Function DecToHex_(dec As Long) As String
    Dim hex As String
    Select Case dec
        Case 0 To 9: hex = CStr(dec)
        Case 10: hex = "A"
        Case 11: hex = "B"
        Case 12: hex = "C"
        Case 13: hex = "D"
        Case 14: hex = "E"
        Case 15: hex = "F"
    End Select
    DecToHex_ = hex
End Function

表記ゆれ

  • A から B に変換する
  • A を B に 変換する
  • A から B へ変換する
  • A を B へ変換する

よかったらシェアしてね!

この記事を書いた人

コメント

コメントする

目次
閉じる