sql >> データベース >  >> RDS >> Mysql

MySQLで数値を8進数に変換する2つの方法

    数値を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


    1. Postgresでsqlalchemyを使用して部分的に一意のインデックスを作成する

    2. Oracle12cのインストールで一時的な場所にアクセスできませんでした

    3. PentahoDataIntegrationおよびBAServerツールへのMicrosoftSQLServerJDBCドライバーのインストール

    4. 列内の個別の値の数を取得するにはどうすればよいですか?