Đổi Hex sang Bát phân

Chuyển đổi giá trị thập lục phân sang hệ bát phân qua cầu nối nhị phân.

Hệ thập lục phân xuất hiện thường xuyên trong địa chỉ MAC hoặc IPv6, trong khi hệ bát phân ít khi lộ diện hơn. Cả hai hệ đếm này đều xuất phát từ việc gom cụm các chữ số nhị phân, nhưng quá trình chuyển đổi giữa chúng lại mang đặc thù riêng biệt so với khi đổi sang hệ thập phân thông thường.

Cách gom nhóm bit giữa hệ hex và bát phân

Hệ thập lục phân chia chuỗi nhị phân thành từng cụm 4 bit, bởi vì 4 bit tạo ra vừa vặn 16 tổ hợp từ 0000 đến 1111. Ngược lại, hệ bát phân chia nhị phân thành các cụm 3 bit, cho ra 8 tổ hợp từ 000 đến 111.

Cả hai đều đóng vai trò biểu diễn rút gọn cho chuỗi nhị phân. Bạn không thể thay trực tiếp một ký tự hex bằng một ký tự bát phân do 4 và 3 không chia hết cho nhau theo cách tương ứng. Cách tiếp cận chuẩn là bung giá trị trở lại dạng nhị phân rồi mới gom nhóm lại.

Lý do hai hệ số không khớp gọn trên một byte

Một byte chứa 8 bit. Số 8 chia hết cho 4 nên một byte luôn được gói gọn trong đúng 2 ký tự hex, trải dài từ 00 đến FF. Tuy nhiên, 8 không chia hết cho 3, khiến một byte trong hệ bát phân phải chiếm 3 chữ số và không phủ hết dải giá trị, chạy từ 000 đến 377.

Xét giá trị tối đa của một byte: số thập phân 255 ứng với hex FF gồm 2 chữ số gọn gàng. Ở dạng nhị phân, giá trị này là 11111111. Khi bạn gom các bit này từ phải sang trái thành từng nhóm 3 bit — 011 111 111 — kết quả bát phân sẽ là 377, bởi vì (3 × 64) + (7 × 8) + 7 = 255. Cùng một con số nhưng bát phân cần 3 ký tự và chữ số 3 đứng đầu không bao giờ đạt tới mức tối đa của một chữ số bát phân.

Các bước đổi hex sang bát phân thủ công

  1. Đổi từng ký tự hex sang nhóm 4 bit nhị phân tương ứng.
  2. Nối liền các nhóm 4 bit lại thành một chuỗi nhị phân duy nhất.
  3. Bắt đầu từ phía bên phải, gom chuỗi nhị phân thành từng nhóm 3 bit, thêm số 0 vào nhóm ngoài cùng bên trái nếu thiếu bit.
  4. Chuyển từng nhóm 3 bit thành chữ số bát phân tương ứng từ 0 đến 7.
  5. Đọc toàn bộ các chữ số bát phân thu được từ trái sang phải để có kết quả cuối cùng.

Đối chiếu các giá trị nhỏ trên cả bốn hệ đếm

DecimalBinaryHexOctal
7011177
151111F17
31111111F37
631111113F77
25511111111FF377

Thắc mắc thường gặp về chuyển đổi hex sang bát phân

Khi nào cần chuyển đổi từ hex sang bát phân?

Nhu cầu này chủ yếu phát sinh khi bạn làm việc với tài liệu Unix cũ, các dự án giả lập máy tính cổ hoặc những định dạng tệp lưu trữ số liệu dưới dạng bát phân. Phần mềm hiện đại rất ít khi yêu cầu thao tác này trực tiếp.

Có thể đổi hex sang bát phân mà không qua nhị phân không?

Không có cách chuyển trực tiếp một bước vì độ dài cụm bit của hai hệ không tương thích. Dùng hệ nhị phân làm cầu nối trung gian là phương pháp chắc chắn nhất, ngay cả khi bạn tính nhẩm.

Số 0 đứng đầu trong hệ bát phân có gây nhầm lẫn không?

Trong một số ngôn ngữ lập trình, số 0 đứng trước một hằng số biểu thị đó là số bát phân, điều từng gây ra lỗi phần mềm. Khi bạn nhập dữ liệu vào công cụ chuyển đổi chuyên biệt, sự nhầm lẫn này không xảy ra vì hệ cơ số đã được ấn định rõ.

Tại sao hệ bát phân chỉ dùng chữ số từ 0 đến 7?

Bởi vì 3 bit nhị phân chỉ biểu diễn được tối đa 8 giá trị khác nhau, từ 0 đến 7. Hệ bát phân không có chữ số 8 hay 9, tương tự như việc hệ nhị phân không có chữ số 2.

Hệ bát phân có bao giờ gọn hơn hệ hex không?

Không. Vì một byte luôn chia vừa vặn cho 2 chữ số hex thay vì phải dùng đến 3 chữ số bát phân, hệ thập lục phân luôn gọn gàng hơn hoặc tối thiểu là bằng bát phân khi lưu trữ dữ liệu dạng byte.

Cookie
Chúng tôi quan tâm đến dữ liệu của bạn và muốn sử dụng cookie để cải thiện trải nghiệm của bạn.