Chuyển đổi hệ cơ số: Thập phân, Hex, Base32, Base64

Chuyển đổi số giữa thập phân, Base16 (hex), Base32 và Base64 theo hai chiều, có tự động phát hiện hệ cơ số. Mã hóa số thập phân hoặc giải mã giá trị đã mã hóa.

Bộ Chuyển Đổi Cơ Số Hai Chiều

Chuyển đổi giữa số thập phân và mã hóa cơ số tiêu chuẩn (Hex/Cơ số 16, Cơ số 32, Cơ số 64). Nhập giá trị vào một trong hai ô để chuyển đổi.

Nhập số nguyên dương (tối đa: 9.007.199.254.740.991)

Nhập giá trị được mã hóa ở Cơ số 16, Cơ số 32 hoặc Cơ số 64

Về Mã Hóa Cơ Số

Cơ Số 16 (Thập Lục Phân): Sử dụng các ký tự 0-9 và A-F. Mỗi ký tự đại diện cho 4 bit. Thường được sử dụng cho mã màu và địa chỉ bộ nhớ.
Cơ Số 32: Sử dụng các ký tự A-Z và 2-7. Mỗi ký tự đại diện cho 5 bit. Không phân biệt chữ hoa/thường và dễ đọc.
Cơ Số 64: Sử dụng các ký tự A-Z, a-z, 0-9, +, và /. Mỗi ký tự đại diện cho 6 bit. Thường được sử dụng để mã hóa dữ liệu nhị phân thành văn bản.
Giới Hạn Số Nguyên An Toàn: JavaScript có thể biểu diễn an toàn các số nguyên lên đến 9.007.199.254.740.991 (2^53 - 1) mà không mất độ chính xác.
📚

Tài liệu hướng dẫn

Bộ chuyển đổi hệ cơ số hai chiều: Thập phân ↔ Base16, Base32, Base64

Bộ chuyển đổi hệ cơ số biến một số từ cách viết này sang cách viết khác. Máy tính, URL và các định dạng dữ liệu hiếm khi lưu trữ số thập phân thuần túy — chúng đóng gói số đó thành một dạng mã hóa gọn hơn hoặc an toàn khi truyền tải, chẳng hạn như Base16 (thập lục phân), Base32, hoặc Base64. Công cụ này chuyển đổi theo cả hai chiều: nhập một số thập phân để xem dạng Base16/Base32/Base64 của nó, hoặc dán một giá trị đã mã hóa để lấy lại số thập phân. Công cụ cũng tự động phát hiện giá trị đã mã hóa đang ở hệ cơ số nào.

"Hệ cơ số" nghĩa là gì

Mọi hệ thống số theo vị trí đều có một hệ cơ số (hay radix) — số lượng ký hiệu khác nhau được dùng cho một chữ số. Hệ thập phân là hệ cơ số 10 (0–9). Các cách mã hóa dưới đây đánh đổi một bộ ký hiệu lớn hơn để lấy một chuỗi ngắn hơn:

  • Base16 (Thập lục phân) — các ký hiệu 0-9A-F. Mỗi ký tự mang 4 bit. Được dùng phổ biến cho mã màu (#FF0000), địa chỉ bộ nhớ và các giá trị băm (hash).
  • Base32 — các ký hiệu A-Z2-7 (RFC 4648). Mỗi ký tự mang 5 bit. Không phân biệt chữ hoa/thường và không chứa các ký tự dễ nhầm lẫn, nên vẫn chính xác khi đọc to hoặc gõ tay.
  • Base64 — các ký hiệu A-Z, a-z, 0-9, +, và / (RFC 4648). Mỗi ký tự mang 6 bit. Là cách chuẩn để truyền dữ liệu nhị phân qua các kênh chỉ hỗ trợ văn bản như email hoặc một trường JSON.

Hệ cơ số càng cao, cùng một số càng cần ít ký tự hơn — nhưng bảng ký hiệu bạn phải nắm rõ cũng lớn hơn.

Cách sử dụng bộ chuyển đổi

Công cụ có hai ô nhập liệu và hoạt động theo ô mà bạn nhập vào:

  • Thập phân → đã mã hóa. Nhập một số nguyên dương vào ô thập phân. Công cụ sẽ hiển thị giá trị đó ở dạng Base16, Base32 và Base64 cùng một lúc.
  • Đã mã hóa → thập phân. Dán một giá trị Base16, Base32 hoặc Base64 vào ô đã mã hóa. Công cụ sẽ phát hiện hệ cơ số, kiểm tra tính hợp lệ của các ký tự và trả về số thập phân.

Phạm vi và kiểm tra hợp lệ

Giá trị bị giới hạn ở số nguyên an toàn tối đa của JavaScript, 9007199254740991 (tức 2^53 − 1). Vượt quá giới hạn này, số nguyên không còn được biểu diễn chính xác nữa, nên một bộ chuyển đổi cứ tiếp tục xử lý sẽ âm thầm trả về các chữ số sai — công cụ này báo lỗi vượt phạm vi thay vì đoán mò. Giá trị nhập vào ở ô thập phân phải là số nguyên không âm; giá trị nhập vào ở ô đã mã hóa chỉ được dùng các ký tự hợp lệ với hệ cơ số của nó, nếu không công cụ sẽ báo lỗi thay vì giải mã ra dữ liệu vô nghĩa.

Ví dụ minh họa

  • 255 ở hệ thập phân. Base16 = FF, vì 255 = 15×16 + 15 và cả hai chữ số đều là F. Đây là lý do #FFFFFF là màu trắng: cả ba byte đều ở giá trị tối đa.
  • 1000 ở hệ thập phân. Base16 = 3E8 (3×256 + 14×16 + 8 = 1000).
  • Giải mã FF. Được phát hiện là Base16, giải mã ra 255.
  • Một byte ở giá trị tối đa, 8 bit, là FF ở hệ thập lục phân — mỗi ký tự hex ứng với 4 bit, nên cần hai ký tự cho một byte. Cùng một byte đó cần một chuỗi dài hơn ở Base32 và một nhóm có đệm (padding) ở Base64, đó là lý do hệ thập lục phân vẫn là lựa chọn dễ đọc cho các giá trị ngắn như mã màu và địa chỉ.

Ứng dụng của từng loại mã hóa

  • Base16 — mã màu CSS/HTML, địa chỉ MAC và IPv6, giá trị băm mật mã (cryptographic hash) và checksum, bản dump hex của tệp nhị phân.
  • Base32 — khóa bí mật TOTP/2FA, một số hệ thống chia sẻ tệp và hệ thống dựa trên DNS, các định danh cần gõ tay hoặc đọc to mà phải tránh nhầm lẫn chữ hoa/thường và ký tự.
  • Base64data: URI, tệp đính kèm email (MIME), nhúng hình ảnh hoặc chứng chỉ vào trong JSON hoặc XML, token JWT.

Vì mỗi cách mã hóa chỉ là một cách biểu diễn của cùng một số bên dưới, việc chuyển đổi giữa chúng không bao giờ làm thay đổi giá trị — chỉ thay đổi số ký tự cần dùng để viết ra và những kênh nào có thể truyền tải nó một cách an toàn.

🔗

Công cụ Liên quan

Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn