Khi làm việc với MySQL, bạn có thể sử dụng CONV()
hàm để chuyển một số từ cơ số này sang cơ số khác. Nó có ba đối số; số cần chuyển đổi, cơ sở ban đầu và cơ sở bạn muốn chuyển đổi thành.
Cú pháp
Đây là cú pháp chính thức:
CONV(N,from_base,to_base)
Nơi from_base
là cơ sở ban đầu và to_base
là cơ sở bạn muốn chuyển đổi số thành.
Ví dụ - Thập phân thành Nhị phân
Dưới đây là ví dụ về chuyển đổi một số từ cơ số 10 (thập phân) sang cơ số 2 (nhị phân):
SELECT CONV(3, 10, 2);
Kết quả:
+----------------+ | CONV(3, 10, 2) | +----------------+ | 11 | +----------------+
Vì vậy, chúng ta có thể thấy rằng 3
ở dạng thập phân chuyển đổi thành 11
ở dạng nhị phân.
Trong trường hợp nhị phân, MySQL cũng có BIN()
cho phép bạn chuyển đổi từ hệ thập phân sang nhị phân. Do đó, ví dụ trên tương đương với ví dụ sau:
SELECT BIN(3);
Kết quả:
+--------+ | BIN(3) | +--------+ | 11 | +--------+
Ví dụ - Binary to Decimal
Tuy nhiên, một lợi ích của CONV()
chức năng là nó cũng cho phép bạn chuyển đổi ngược lại theo cách khác. Vì vậy, chúng ta có thể chuyển ví dụ trên để chuyển đổi từ nhị phân sang thập phân:
SELECT CONV(11, 2, 10);
Kết quả:
+-----------------+ | CONV(11, 2, 10) | +-----------------+ | 3 | +-----------------+
Ví dụ - Từ thập phân sang thập lục phân
Trong ví dụ này, chúng tôi chuyển đổi từ thập phân sang thập lục phân:
SELECT CONV(13, 10, 16);
Kết quả:
+------------------+ | CONV(13, 10, 16) | +------------------+ | D | +------------------+
Như đã trình bày ở đây, 13
trong cơ số 10 (thập phân) chuyển đổi thành D
trong cơ số 16 (hệ thập lục phân).
Đây là một ví dụ khác, lần này sử dụng một số lớn hơn:
SELECT CONV(12734, 10, 16);
Kết quả:
+---------------------+ | CONV(12734, 10, 16) | +---------------------+ | 31BE | +---------------------+
Tương tự với BIN()
cho các chuyển đổi nhị phân, MySQL cũng có HEX()
hàm chuyển đổi một số từ thập phân sang thập lục phân. Vì vậy, ví dụ trước có thể được viết lại như sau:
SELECT HEX(12734);
Kết quả:
+------------+ | HEX(12734) | +------------+ | 31BE | +------------+
Ví dụ - Cơ sở 36
CONV()
hàm chấp nhận cơ số tối thiểu là 2 (nhị phân) và cơ số tối đa là 36. Dưới đây là ví dụ về chuyển đổi từ cơ số 10 sang cơ số 36:
SELECT CONV(12734, 10, 36);
Kết quả:
+---------------------+ | CONV(12734, 10, 36) | +---------------------+ | 9TQ | +---------------------+