Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 16진수로 작업하시겠습니까?


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.