16 進数を使用するには、CONV() 関数を使用して基数間を変換します。構文は次のとおりです。 -
SET anyVariableName = CONV(yourHexValue,16,10);
上記の構文を理解するために、ストアド プロシージャを作成してみましょう。ストアド プロシージャを作成するクエリは次のとおりです。 -
mysql> DELIMITER // mysql> CREATE PROCEDURE SP_HEX_TO_DEC( HEXVALUE VARCHAR(10) ) -> BEGIN -> DECLARE Decimalvalue INTEGER; -> SET Decimalvalue = CONV(HEXVALUE,16,10); -> select Decimalvalue; -> END; -> // Query OK, 0 rows affected (0.19 sec) mysql> DELIMITER ;
上記のストアド プロシージャは、16 進数を 10 進数に変換します。 A が 10 進数で 10 を表すことがわかっているので、A をパラメータとして渡します。ストアド プロシージャを呼び出すには、CALL コマンドを使用します。
構文は次のとおりです -
CALL yourStoredProcedureName;
CALL コマンドを使用して、上記のストアド プロシージャを呼び出します。クエリは次のとおりです。 -
mysql> call SP_HEX_TO_DEC('A');
以下は、上記で作成したストアド プロシージャを使用して計算された 10 進数値を示す出力です。 -
+--------------+ | Decimalvalue | +--------------+ | 10 | +--------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
select ステートメントで直接確認してください。
mysql> select conv('AB',16,10) as DecimalResult;
次は出力です -
+---------------+ | DecimalResult | +---------------+ | 171 | +---------------+ 1 row in set (0.00 sec)
次に、16 進数を 10 進数に変換するプロセスを見てみましょう。このルールを覚えておいてください -
A and B represented as 10 and 11 respectively in hexadecimal. To convert it into decimal rule is as follows: N ………+value3 *162 +value2 *161 + value1 * 160 = 10 * 161 + 11 * 160 = 160+11 = 171.
以上がMySQL で 16 進数を使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。