MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで16進数文字列を数値に変換する方法

MySQLのCONV()関数を使って16進数文字列を10進数の数値へ変換する

MySQLでは、CONV()関数を使用することで、16進数の文字列を簡単に10進数の数値へ変換できます。基本的な構文は以下の通りです。

SELECT CONV(カラム名, 16, 10) AS エイリアス名 FROM テーブル名;

CONV()関数は第1引数に変換対象の値、第2引数に元の基数(ここでは16進数なので16)、第3引数に変換後の基数(10進数なので10)を指定します。

サンプルテーブルの作成

まず、動作確認用のテーブルを作成しましょう。

mysql> CREATE TABLE DemoTable
-> (
-> HexString VARCHAR(100)
-> );
Query OK, 0 rows affected (0.82 sec)

テストデータの挿入

次に、INSERT文を使って16進数の文字列データを挿入します。

mysql> INSERT INTO DemoTable VALUES('A');
Query OK, 1 row affected (0.28 sec)

mysql> INSERT INTO DemoTable VALUES('F');
Query OK, 1 row affected (0.19 sec)

mysql> INSERT INTO DemoTable VALUES('B');
Query OK, 1 row affected (0.55 sec)

mysql> INSERT INTO DemoTable VALUES('ABC');
Query OK, 1 row affected (0.11 sec)

登録データの確認

SELECT文ですべてのレコードを表示して確認します。

mysql> SELECT * FROM DemoTable;

出力結果

上記のクエリを実行すると、次のような結果が得られます。

+-----------+
| HexString |
+-----------+
| A         |
| F         |
| B         |
| ABC       |
+-----------+
4 rows in set (0.00 sec)

16進数文字列を数値に変換するクエリ

それでは、CONV()関数を使って16進数文字列を10進数の数値に変換してみましょう。AS句でエイリアス「Number」を指定すると、結果が見やすくなります。

mysql> SELECT CONV(HexString, 16, 10) AS Number FROM DemoTable;

出力結果

実行結果は以下の通りです。各16進数文字列が対応する10進数の数値に正しく変換されていることがわかります。

+--------+
| Number |
+--------+
| 10     |
| 15     |
| 11     |
| 2748   |
+--------+
4 rows in set (0.00 sec)

変換結果の解説

  • 「A」(16進)→ 10(10進)
  • 「F」(16進)→ 15(10進)
  • 「B」(16進)→ 11(10進)
  • 「ABC」(16進)→ 2748(10進): A=10 × 16² + B=11 × 16¹ + C=12 = 2560 + 176 + 12 = 2748

このように、CONV()関数を使えば基数の異なる数値表現を柔軟に相互変換できます。なお、CONV()関数は2進数から36進数までの間で変換に対応しているため、8進数や2進数への変換にも応用可能です。

  1. C++で整数を16進数文字列に変換する方法

    この記事では、C++で整数を16進数の文字列に変換する方法を紹介します。整数を16進数へ変換するには、剰余や除算を繰り返す数学的な手順を実装する方法もありますが、ここではより簡単なテクニックを使って問題を解決します。%Xフォーマット指定子とはC/C++には「%X」というフォーマット指定子が用意されています。これは変数の値を16進数形式(大文字のA〜F)で出力するためのもので、「%x」を使えば小文字(a〜f)で出力することもできます。本プログラムでは、このフォーマット指定子と sprintf() 関数を組み合わせることで、数値をそのまま文字列として取得しています。入力: 整数 255 出力: F

  2. C#で16進文字列を16進数値に変換する方法

    C#では、「7D」のような16進表記の文字列を簡単に数値へ変換できます。この記事では、Convert.ToSByte()メソッドとConvert.ToInt32()メソッドを使った2つの代表的な方法を、サンプルコード付きで解説します。 方法1:Convert.ToSByte()を使う まず、変換対象となる16進文字列を設定します。 string str = "7D"; 次に、Convert.ToSByte()メソッドの第2引数に基数「16」を指定して呼び出すことで、16進文字列を数値に変換できます。 Console.WriteLine(Convert.ToSByte(str