T

Text Machine

Công cụ văn bản mạnh mẽ, ngay trong trình duyệt của bạn

Bộ chuyển đổi Văn bản ↔ Hex

Chuyển đổi văn bản sang thập lục phân và hex ngược lại thành văn bản ngay trong trình duyệt của bạn. Hỗ trợ đầy đủ UTF-8 có nghĩa là mọi ký tự đều được mã hóa chính xác — chọn chữ thường hoặc chữ hoa, và các byte phân tách bằng dấu cách hoặc liền mạch.

Kiểu chữ

Dấu phân tách

Đầu vào văn bản
Đầu ra hex

Nhập dữ liệu ở trên để xem kết quả chuyển đổi tại đây.

Cách sử dụng Bộ chuyển đổi Văn bản ↔ Hex

  1. 1

    Chọn một hướng

    Dùng nút gạt để chọn Văn bản sang Hex hoặc Hex sang Văn bản. Nút hoán đổi sẽ đưa kết quả của bạn vào ô đầu vào để bạn có thể chuyển nó ngược lại theo chiều kia.

  2. 2

    Nhập dữ liệu của bạn

    Gõ hoặc dán văn bản, hoặc dán một chuỗi hex. Việc chuyển đổi chạy tự động khi bạn gõ, với hỗ trợ đầy đủ UTF-8 cho mọi ký tự.

  3. 3

    Chọn định dạng

    Với đầu ra hex, chọn chữ số viết thường hoặc viết hoa và một dấu cách giữa mỗi byte hoặc một luồng liền mạch. Khi giải mã, dấu cách, dấu phẩy và dấu hai chấm đều là tùy chọn.

  4. 4

    Sao chép kết quả

    Xem lại kết quả đã chuyển đổi và sao chép nó vào khay nhớ tạm, sẵn sàng để dán vào bất cứ nơi nào bạn cần.

Văn bản sang thập lục phân: Hướng dẫn đầy đủ

Thập lục phân là gì

Thập lục phân, thường được gọi tắt là hex, là hệ đếm cơ số 16. Trong khi hệ thập phân dùng mười ký hiệu chữ số và nhị phân dùng hai, hex dùng mười sáu: các chữ số 0 đến 9 cho các giá trị từ không đến chín, rồi các chữ cái A đến F cho các giá trị từ mười đến mười lăm. Vậy A là 10, B là 11, C là 12, D là 13, E là 14, và F là 15. Kiểu chữ hoa hay thường không làm thay đổi giá trị, nên 0xff và 0xFF là cùng một con số.

Hex là cách viết tắt của lập trình viên cho nhị phân. Mỗi chữ số hex ứng chính xác với bốn bit, vì bốn bit chứa được mười sáu giá trị khả dĩ, nên hai chữ số hex mô tả trọn vẹn một byte tám bit. Sự khớp khít đó là lý do byte gần như luôn được viết ở dạng hex thay vì những chuỗi dài số một và số không — nó gọn gàng hơn nhiều và dễ đọc hơn nhiều.

Hai chữ số hex cho mỗi byte

Một byte là tám bit và có thể chứa bất kỳ giá trị nào từ 0 đến 255. Trong hex, phạm vi đó được viết bằng đúng hai chữ số, từ 00 đến FF, trong đó FF bằng 255. Chữ số bên trái biểu diễn bốn bit cao, có trọng số mười sáu, còn chữ số bên phải biểu diễn bốn bit thấp, có trọng số một. Để tìm giá trị của một byte, bạn tính chữ số bên trái nhân 16 cộng với chữ số bên phải.

Công cụ này luôn viết mỗi byte thành một cặp hex hai chữ số, thêm một số 0 vào đầu khi cần, nên byte có giá trị 5 xuất hiện dưới dạng 05 chứ không chỉ là 5. Giữ độ rộng cố định hai chữ số có nghĩa là các byte thẳng hàng và một bản dump hex có thể được đọc rõ ràng không nhập nhằng. Bạn có thể hiển thị các chữ số ở dạng chữ thường hoặc chữ hoa và phân tách các byte bằng dấu cách hoặc ghép liền chúng lại.

Từ ký tự đến hex, từng bước một

Chuyển một ký tự sang hex gồm hai bước: lấy giá trị byte của nó, rồi viết giá trị đó ở cơ số 16. Với các ký tự ASCII, giá trị byte chính là điểm mã quen thuộc. A hoa là 65 ở hệ thập phân. Để chuyển 65 sang hex, hãy chia cho 16: 65 bằng 4 lần 16 (tức 64) dư 1, nên chữ số cao là 4 và chữ số thấp là 1, cho ra 0x41.

Đó là lý do A = 0x41 là một trong những giá trị được nhận ra nhiều nhất trong tin học. Cũng phương pháp đó cho ra a thường, mã 97, là 0x61 (6 lần 16 là 96, dư 1), và ký tự dấu cách, mã 32, là 0x20 (2 lần 16 là 32, dư 0). Đi ngược lại, hãy nhân chữ số hex thứ nhất với 16 rồi cộng chữ số thứ hai để khôi phục mã thập phân, sau đó tra ra ký tự.

Ví dụ minh họa: mã hóa "Hex"

Đưa ba chữ cái H, e, x qua quá trình chuyển đổi. H là mã 72; chia cho 16 được 4 dư 8, nên nó là 0x48. Chữ e là mã 101; đó là 6 lần 16 (96) dư 5, nên là 0x65. Chữ x là mã 120; đó là 7 lần 16 (112) dư 8, nên là 0x78.

Viết dưới dạng một bản dump chữ hoa phân tách bằng dấu cách, từ "Hex" trở thành 48 65 78. Ở dạng chữ thường không có dấu phân tách thì là 486578. Giải mã đảo ngược phép tính: 48 là 4 lần 16 cộng 8, tức 72, tức H; 65 là 101, tức e; 78 là 120, tức x — khôi phục lại từ gốc.

ASCII so với UTF-8 và các ký tự nhiều byte

Quy tắc một-ký-tự-hai-chữ-số chỉ áp dụng gọn ghẽ với bộ ASCII gốc, các điểm mã từ 0 đến 127. Với mọi thứ vượt ra ngoài đó — chữ cái có dấu, các hệ chữ viết không thuộc Latinh, ký hiệu và emoji — công cụ này dùng UTF-8, vốn có độ rộng thay đổi. Một ký tự ASCII là một byte, do đó là một cặp hex, nhưng các ký tự khác chiếm hai, ba hoặc bốn byte, do đó là hai, ba hoặc bốn cặp hex.

Chẳng hạn, chữ é có dấu là hai byte UTF-8 0xC3 và 0xA9, nên nó chuyển thành hex C3 A9 chứ không phải một cặp duy nhất. Một emoji thông dụng là bốn byte và trở thành bốn cặp hex. Đây là lý do văn bản không phải tiếng Anh tạo ra nhiều hex hơn so với số ký tự nhìn thấy của nó, và điều này đáng nhớ khi bạn đang đếm byte chứ không phải chữ cái.

Giải mã linh hoạt

Chiều Hex sang Văn bản đọc đầu vào theo từng hai chữ số một và cố tình dễ tính về định dạng. Dấu cách, dấu phẩy và dấu hai chấm giữa các byte đều bị bỏ qua, nên một chuỗi thuần như 486578, một bản dump có dấu cách như 48 65 78, và một bản dump phân tách bằng dấu hai chấm như 48:65:78 đều giải mã thành cùng một từ. Cả chữ số viết thường lẫn viết hoa đều được chấp nhận theo bất kỳ cách trộn lẫn nào.

Hai quy tắc vẫn phải được giữ: đầu vào chỉ được chứa các ký tự hex hợp lệ (0-9 và A-F, cộng với các dấu phân tách bị bỏ qua), và số chữ số hex phải là số chẵn, vì mỗi byte cần đúng hai chữ số. Một lỗi chuyển đổi gần như luôn có nghĩa là một ký tự không phải hex đã lọt vào hoặc số đếm chữ số ra số lẻ — có lẽ một byte bị thiếu một chữ số. Sửa điều đó thì việc giải mã sẽ hoàn tất.

Hex được dùng ở đâu

Thập lục phân hiện diện khắp nơi trong lập trình và gỡ lỗi. Địa chỉ bộ nhớ, độ lệch byte và các bản dump dữ liệu thô đều được hiển thị ở dạng hex vì hai chữ số ánh xạ sang một byte một cách gọn gàng. Khi bạn xem xét một tệp hoặc một gói tin mạng trong một trình soạn thảo hex, bạn đang đọc đúng loại kết quả mà công cụ này tạo ra. Hex cũng mã hóa các định danh nhị phân một cách cô đọng, chẳng hạn như hash và UUID.

Bạn có lẽ cũng đã từng thấy hex ngoài các bản dump byte. CSS và các công cụ thiết kế viết màu sắc dưới dạng bộ ba hex như #FF8800, trong đó mỗi cặp là cường độ đỏ, lục và lam từ 00 đến FF. Cú pháp escape ký tự trong nhiều ngôn ngữ dùng hex, như \x41 nghĩa là chữ cái A. Chuyển văn bản sang hex là một cách nhanh chóng để xem xét các giá trị byte chính xác đằng sau một chuỗi, kiểm chứng một bảng mã, hoặc chuẩn bị dữ liệu cho một ngữ cảnh cần thập lục phân.

Câu hỏi thường gặp

Văn bản được chuyển đổi sang thập lục phân như thế nào?
Mỗi ký tự được mã hóa thành các byte UTF-8, và mỗi byte được viết dưới dạng một số thập lục phân hai chữ số từ 00 đến FF. Các chữ cái tiếng Anh thông thường ứng với một byte mỗi chữ, trong khi các ký tự có dấu, ký hiệu và emoji dùng từ hai đến bốn byte.
Công cụ có hỗ trợ emoji và văn bản không phải tiếng Anh không?
Có. Vì công cụ dùng UTF-8 nên nó xử lý được mọi ký tự Unicode — chữ cái có dấu, chữ Kirin, Hy Lạp, Trung, Nhật, Ả Rập, emoji và nhiều hơn nữa. Chúng được mã hóa thành các chuỗi nhiều byte chính xác và giải mã trở lại nguyên vẹn.
Bộ giải mã chấp nhận những định dạng hex nào?
Bộ giải mã Hex sang Văn bản đọc theo các byte hai chữ số và khá dễ tính về định dạng. Dấu cách, dấu phẩy và dấu hai chấm giữa các byte đều được bỏ qua, nên cả hex thuần, các byte phân tách bằng dấu cách lẫn các bản dump phân tách bằng dấu hai chấm đều dùng được. Cả chữ số viết thường lẫn viết hoa đều được chấp nhận.
Tại sao tôi gặp lỗi chuyển đổi?
Việc giải mã thất bại nếu chuỗi hex chứa ký tự khác ngoài 0-9 và A-F, hoặc nếu số chữ số là số lẻ. Mỗi byte cần đúng hai chữ số hex, vì vậy hãy loại bỏ mọi ký tự lạc và đảm bảo độ dài là số chẵn, khi đó việc chuyển đổi sẽ thành công.
Dữ liệu của tôi có được tải lên máy chủ không?
Không. Mọi chuyển đổi diễn ra hoàn toàn trong trình duyệt của bạn. Văn bản của bạn không bao giờ được tải lên, ghi lại hay lưu trữ, nên nó hoàn toàn riêng tư và công cụ vẫn hoạt động ngay cả khi bạn ngoại tuyến.

Công cụ liên quan

Tiếp tục với những công cụ hữu ích này

Bộ chuyển đổi Văn bản ↔ Nhị phân

Trình dịch mã Morse

Bộ chuyển bảng chữ cái ngữ âm NATO

Công cụ dịch chữ nổi Braille

Mật mã Caesar

Mật mã Vigenère