Cách dùng máy tính hex
- Nhập hai số hex, ví dụ
8ABvàB78. Có thể dùng dấu trừ và các tiền tố như0x. - Chọn phép toán. Kết quả cập nhật ngay lập tức ở dạng hex, thập phân và nhị phân; phép chia còn hiển thị cả số dư.
- Với kết quả âm và phép NOT, hãy chọn số bit (8, 16, 32 hoặc 64 bit) để xem giá trị mã bù 2.
Cách cộng số hex
Cộng các chữ số theo từng cột từ phải sang trái, giống hệt như trong hệ thập phân. Điểm khác duy nhất: khi tổng của một cột từ 16 trở lên, hãy viết tổng trừ 16 và nhớ 1 sang cột tiếp theo. Ví dụ: 8AB + B78.
| Cột | Chữ số | Tổng | Viết | Nhớ |
|---|---|---|---|---|
| 16⁰ | B + 8 | 11 + 8 = 19 | 3 | 1 |
| 16¹ | A + 7 + 1 | 10 + 7 + 1 = 18 | 2 | 1 |
| 16² | 8 + B + 1 | 8 + 11 + 1 = 20 | 4 | 1 |
| 16³ | nhớ | 1 | 1 | – |
Đọc các chữ số đã viết từ cột cao nhất xuống cột thấp nhất, ta được 1423. Kiểm tra bằng hệ thập phân: 2219 + 2936 = 5155 = 1423 hex.
Phép trừ hex, kết quả âm và mã bù 2
Phép trừ dùng cách mượn: nếu chữ số ở trên nhỏ hơn, hãy mượn 16 từ cột kế tiếp. B78 − 8AB: 8 − B cần mượn, 8 + 16 − 11 = 13 = D; tiếp theo 7 − 1 − A cần mượn, 6 + 16 − 10 = 12 = C; cuối cùng B − 1 − 8 = 2, nên kết quả là 2CD.
Nếu số thứ hai lớn hơn, kết quả sẽ là số âm. Công cụ hiển thị kết quả với dấu trừ (5 − 8 = −3) và cả dưới dạng dãy bit mà máy tính thực sự lưu trữ: trong mã bù 2 8 bit, −3 là 2⁸ − 3 = 253 = FD, với 16 bit là FFFD. Khi tính bằng tay, để đổi dấu một số, hãy đảo tất cả các bit rồi cộng 1: 03 = 0000 0011 → 1111 1100 → 1111 1101 = FD.
Phép toán bit: AND, OR, XOR, NOT và phép dịch bit
Các phép toán bit so sánh các số theo từng bit, vì vậy lập trình viên dùng chúng cho cờ (flag), mặt nạ (mask) và phân quyền. Ví dụ với 3C = 0011 1100 và 0F = 0000 1111:
| Phép toán | Quy tắc | Kết quả |
|---|---|---|
3C AND 0F | 1 chỉ khi cả hai bit đều là 1 | 0C |
3C OR 0F | 1 khi ít nhất một bit là 1 | 3F |
3C XOR 0F | 1 khi hai bit khác nhau | 33 |
NOT 3C (8 bit) | đảo mọi bit | C3 |
3C << 1 | dịch trái = nhân 2 | 78 |
3C >> 2 | dịch phải = chia 4 | 0F |
Câu hỏi thường gặp
Nhân số hex như thế nào?
Giống như trong hệ thập phân, nhưng mọi tích riêng phần đều được viết ở hệ 16. Thường thì dễ hơn nếu chuyển sang hệ thập phân, nhân rồi chuyển ngược lại: 1A × 10 = 26 × 16 = 416 = 1A0. Nhân với 10 hex (16) chỉ đơn giản là thêm một số 0 vào cuối, giống như nhân với 10 trong hệ thập phân.
Điều gì xảy ra khi chia số hex?
Máy tính hex thực hiện phép chia lấy phần nguyên và hiển thị thương cùng số dư: 1423 ÷ 10 = 142 dư 3. Phép chia cho 0 sẽ được báo lỗi.
Vì sao phép NOT cho kết quả khác nhau với số bit khác nhau?
NOT đảo mọi bit của một giá trị có kích thước cố định, nên kết quả phụ thuộc vào số bit: NOT 3C là C3 với 8 bit nhưng là FFC3 với 16 bit. Chế độ “Tự động” chọn độ rộng tiêu chuẩn nhỏ nhất (8, 16, 32 hoặc 64 bit) đủ chứa số đó.
Máy tính hex có xử lý được số lớn không?
Có. Mọi phép toán đều dùng số nguyên với độ chính xác tùy ý, nên các giá trị 64 bit, 128 bit và thậm chí dài hơn đều được tính chính xác, không bị tràn số hay làm tròn như máy tính bỏ túi thông thường.