Mục lục bài họcĐang ở d01-b1
Number bases: binary, denary and hexadecimal
Place value is the whole idea
In any base, each column is the base times the column to its right. In binary the columns are $128, 64, 32, 16, 8, 4, 2, 1$. To read a binary number, add the column values wherever there is a $1$. There is nothing to memorise beyond the doubling.
Denary to binary
Work from the left: take the largest column that fits, subtract, repeat. For $180$: $128$ fits (leaves $52$), $64$ does not, $32$ fits (leaves $20$), $16$ fits (leaves $4$), $8$ does not, $4$ fits (leaves $0$). Result $10110100$. This is more reliable under exam pressure than repeated division.
Hexadecimal is just grouped binary
Each hex digit is exactly four bits, so conversion is done by splitting into nibbles: $1011\,0100 \to B\,4 \to$ $\text{B4}$. That is why hex exists — it makes long binary readable without changing the value. Never convert binary$\to$denary$\to$hex; go straight through nibbles.
Why programmers use hex
Colour codes, memory addresses and MAC addresses are all hex because one hex digit replaces four bits, so a $32$-bit address becomes eight readable characters instead of thirty-two.
Giá trị theo hàng là toàn bộ ý tưởng
Ở bất kỳ hệ cơ số nào, mỗi cột bằng cơ số nhân với cột bên phải nó. Trong hệ nhị phân, các cột là $128, 64, 32, 16, 8, 4, 2, 1$. Muốn đọc một số nhị phân, cộng giá trị của những cột mang bit $1$. Ngoài việc nhân đôi, không có gì phải học thuộc.
Thập phân sang nhị phân
Làm từ trái sang: lấy cột lớn nhất còn vừa, trừ đi, lặp lại. Với $180$: $128$ vừa (còn $52$), $64$ không vừa, $32$ vừa (còn $20$), $16$ vừa (còn $4$), $8$ không vừa, $4$ vừa (còn $0$). Kết quả $10110100$. Cách này chắc tay hơn phép chia liên tiếp khi đang căng thẳng trong phòng thi.
Thập lục phân chỉ là nhị phân gom nhóm
Mỗi chữ số hex đúng bằng bốn bit, nên chuyển đổi chỉ là tách thành từng nhóm bốn: $1011\,0100 \to B\,4 \to \text{B4}$. Đó chính là lý do hex tồn tại — nó làm chuỗi nhị phân dài đọc được mà không đổi giá trị. Đừng bao giờ đi đường vòng nhị phân$\to$thập phân$\to$hex; tách nhóm bốn bit là xong.
Vì sao lập trình viên dùng hex
Mã màu, địa chỉ bộ nhớ và địa chỉ MAC đều viết bằng hex vì một chữ số hex thay cho bốn bit, nên một địa chỉ $32$ bit thành tám ký tự đọc được thay vì ba mươi hai.
Một thanh ghi $8$ bit chứa giá trị hex $\text{9C}$.
(a) Viết giá trị đó dưới dạng nhị phân. (b) Viết dưới dạng thập phân. (c) Kiểm lại kết quả bằng một đường tính khác.
(a) Tách từng chữ số hex thành bốn bit: $9 = 1001$, $\text{C} = 1100$. Ghép lại: $10011100$.
(b) Cộng giá trị các cột có bit $1$: $128 + 16 + 8 + 4 = 156$.
(c) Đường kiểm khác: tính thẳng từ hex — $9 \times 16 + 12 = 144 + 12 = 156$ ✓. Hai đường khác nhau cho cùng một số nên yên tâm.
Mẹo phòng thi: luôn kiểm bằng bậc độ lớn. Số $8$ bit nằm trong khoảng $0$ tới $255$; nếu ra $1560$ thì chắc chắn đã nhầm cột ở đâu đó.
Đọc xong rồi — làm thử ngay
Bài tập của chương Data Representation: Number Bases, Binary Arithmetic and Character Sets gồm 14 câu trắc nghiệm và 3 đề tự luận. Đáp án hiện ngay khi chọn, miễn phí.