数値を10進数から8進数(基数8)に変換する必要がある場合、MySQLを使用していると2つの関数が思い浮かびます。 1つの関数は、特に8進変換を行うためのものであり、もう1つは、異なる塩基間で変換を行うためのものです。これらは次のとおりです。
-
OCT()
- この関数は、特に10進数から8進数に変換するために使用されます。
-
CONV()
- この関数には、より一般的な目的があります。元の数値の基数と結果を指定できます。つまり、任意のベースから任意のベースに変換できます(各ベースが2〜36である限り)。
これら2つの機能の詳細については以下をご覧ください。
OCT()関数
前述のように、この関数は特に10進数から8進数に変換するためのものです。その構文は次のようになります:
OCT(N)
ここでN
8進数に変換する10進数です。
次に例を示します:
SELECT OCT(8);
結果:
+--------+ | OCT(8) | +--------+ | 10 | +--------+
結果は10
です これは、10進法で8に相当する8進数であるためです。
CONV()関数
これは、からに変換する番号付けシステムだけでなく、指定できるより汎用的な関数です。 、だけでなく、からに変換するための番号付けシステム 。
構文:
CONV(N,from_base,to_base)
ここでN
変換する数値、from_base
は変換元のベースであり、to_base
変換するベースです。
したがって、前の例を次のように書き直すことができます。
SELECT CONV(8, 10, 8);
結果:
+----------------+ | CONV(8, 10, 8) | +----------------+ | 10 | +----------------+
また、数値を基数10から基数8に変換するため、同じ結果が得られます。
CONV()
の利点の1つ 機能は、他のベース間で変換できることです。たとえば、基数8から基数16に簡単に変換できます。
オクタルとは何ですか?
8進数は、8をベースとする数値表記のシステムです。これは、10をベースとする10進数とは対照的です。
10進数では、9までカウントし、最初の桁の後にゼロを追加することからやり直します(たとえば、9が10になると、1にゼロが追加されます)。
ただし、8進数(基数8)では、7までカウントしてから、最初からゼロを追加します。したがって、8進数の10は、10進数の8に相当します。
デモンストレーション用の表は次のとおりです。
10進数(基数10) | 8進数(基数8) |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 10 |
9 | 11 |
10 | 12 |
11 | 13 |
12 | 14 |
13 | 15 |
14 | 16 |
15 | 17 |
16 | 20 |
17 | 21 |
18 | 22 |
19 | 23 |
20 | 24 |