Menu
CoddyTech

Vì sao dùng hệ thập lục phân?

Thuộc phần Kiến thức nền tảng trong hành trình Assembly của Coddy. Bài học 10 trên 45.

Bạn đã biết máy tính sử dụng hệ nhị phân. Vậy tại sao lập trình viên Assembly hiếm khi viết trực tiếp bằng hệ nhị phân?

Vấn đề với hệ nhị phân:

Số nhị phân rất dài. Hãy xem ví dụ này:

SốHệ nhị phân
25511111111
10001111101000
655351111111111111111

Viết những chuỗi dài gồm các số 1 và 0 rất chậm, dễ mắc lỗi và khó đọc.

Lời giải: hệ thập lục phân (cơ số 16).

Hệ thập lục phân (hay “hex”) dùng 16 ký hiệu:

Chữ sốGiá trị
0-90 đến 9
A10
B11
C12
D13
E14
F15

Vì sao hệ thập lục phân phù hợp hoàn hảo với máy tính:

Một chữ số hệ thập lục phân biểu diễn chính xác 4 bit (nửa byte).

BitSố chữ số hệ thập lục phân cần dùng
4 bit (nibble)1 chữ số hệ thập lục phân
8 bit (1 byte)2 chữ số hệ thập lục phân
16 bit (2 byte)4 chữ số hệ thập lục phân
32 bit (4 byte)8 chữ số hệ thập lục phân
64 bit (8 byte)16 chữ số hệ thập lục phân

Cùng một số, ba cách biểu diễn:

Thập phânNhị phânThập lục phân
25511111111FF
100011111010003E8
655351111111111111111FFFF

Hãy chú ý xem hệ thập lục phân ngắn hơn hệ nhị phân nhiều như thế nào.

Nơi bạn sẽ thấy hệ thập lục phân trong assembly:

  • Địa chỉ bộ nhớ (như 0x7FFF hoặc 0x402000)
  • Mã ASCII (như 0x41 cho 'A', 0x0a cho ký tự xuống dòng)
  • Giá trị thanh ghi trong trình gỡ lỗi
  • Giá trị màu (như 0xFF0000 cho màu đỏ)

Số thập lục phân được viết với tiền tố:

Tiền tốVí dụÝ nghĩa
0x0xFFFF ở hệ thập lục phân (255 ở hệ thập phân)
$$FFTương tự (được dùng trong một số trình hợp dịch)
hFFhTương tự (kiểu viết cũ hơn)

Trong khóa học này, chúng ta dùng tiền tố 0x: 0x0a, 0x41, 0xFF.

Tự làm thử

Bài học này không có thử thách code.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Playground Assembly

Kiểm tra một phép chuyển đổi: Công cụ chuyển đổi hệ cơ số