Number systems and conversions
Đã giới thiệu| English | Ý nghĩa |
|---|---|
| byte/baɪt/ | Byte |
| denary/ˈdiːnəri/ | Thập phân |
| binary/ˈbaɪnəri/ | Nhị phân |
| bit/bɪt/ | Bit |
| nibble/ˈnɪbl/ | Nibble (nửa byte) |
| hexadecimal/ˌheksəˈdesɪml/ | Thập lục phân |
| register width/ˈredʒɪstə wɪtθ/ | Độ rộng thanh ghi |
| kibi/ˈkɪbi/ | Kibi |
Terabyte mà thực chất không phải terabyte
- Năm 2005, một người California mua ổ cứng ghi nhãn 80 GB. Máy tính của họ báo là 74.5 GB. Anh ta kiện và các nhà sản xuất cuối cùng phải bồi thường: họ đã tính một gigabyte là một tỷ byte, trong khi hệ điều hành tính nó là $2^{30}$.
- Không bên nào nói dối. Có hai họ tiền tố, một họ dựa trên lũy thừa của十 và một họ dựa trên lũy thừa của hai, và chúng càng tách xa nhau khi số càng lớn.
- Toàn bộ biểu diễn dữ liệu dựa trên ý tưởng đó: máy tính chỉ lưu trữ 0 và 1, mọi thứ khác đều là sự đồng thuận về cách đọc chúng.
- Bài học này gồm ba hệ đếm, phép chuyển đổi giữa chúng và hai nhóm tiền tố.
Ba hệ đếm
- Denary (cơ số 10) sử dụng chữ số từ 0 đến 9, với giá trị vị trí là lũy thừa của 10. Đây là hệ đếm dùng hàng ngày.
- Binary (cơ số 2) sử dụng 0 và 1, với giá trị vị trí là lũy thừa của 2. Một chữ số gọi là bit; 4 bits tạo thành nibble; 8 bits tạo thành byte.
- Hexadecimal (cơ số 16) sử dụng 0 đến 9 sau đó A đến F cho 10 đến 15. Một chữ số hex tương ứng chính xác với 4 bits, đó là lý do tại sao nó là ký hiệu rút gọn lập trình viên dùng cho binary.
| Denary | Binary | Hex |
|---|---|---|
| 10 | 1010 |
A |
| 15 | 1111 |
F |
| 16 | 0001 0000 |
10 |
| 255 | 1111 1111 |
FF |

Mọi hệ đều có giá trị vị trí; chỉ thay đổi cơ số
Number systems
byte = Σ place values
Each bit is worth a power of two — flip the bits and watch the decimal and hex update.
How many bits does one hexadecimal digit represent?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
One hex digit (0–F) covers 16 values = $2^4$, so it maps to exactly 4 bits (a nibble).
How many bits are in one byte?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
A byte is 8 bits (and a nibble is 4 bits).
Chuyển denary sang binary
- Phương pháp 1, giá trị vị trí: viết các lũy thừa của 2, $128, 64, 32, 16, 8, 4, 2, 1$, rồi trừ đi lũy thừa lớn nhất vừa đủ, lặp lại với phần còn lại. Đặt số 1 dưới mỗi lũy thừa bạn đã dùng.
- Phương pháp 2, chia lặp lại: chia liên tục cho 2, ghi lại mỗi dư số, sau đó đọc các dư số từ dưới lên trên.
- $42 = 32 + 8 + 2$, nên các bit dưới 32, 8 và 2 là 1 và phần còn lại là 0:
0010 1010.

Trừ đi lũy thừa của 2 lớn nhất vừa đủ, rồi lặp lại
Convert denary $13$ to binary (8-bit not required — just the significant bits).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
$13 = 8 + 4 + 1$, so the columns 8, 4, 1 are set: 1101.
Convert binary 00101010 to denary.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
$32 + 8 + 2 = 42$ (the 32, 8 and 2 columns are set).
Ví dụ minh họa: chuyển denary 200 sang binary và hex
- $200 = 128 + 64 + 8$, nên 8-bit binary là
1100 1000. - Chia thành nibbles từ phải sang:
1100là 12, tức là C;1000là 8. Vậy hexadecimal làC8. - Kiểm tra bằng giá trị vị trí theo chiều ngược lại:
C8$= 12 \times 16 + 8 = 200$. ✓ Luôn trình bày bài giải; chính bước chuyển đổi mang điểm số.
Binary và hex, cả hai chiều
- Nhị phân sang thập lục phân: nhóm các bit thành nibble từ phải sang, thêm zeros vào đầu nhóm bên trái nếu cần, sau đó chuyển đổi từng nibble.
0010 0010 1110trở thành2 2 E, nên kết quả là22E. - Hex sang binary: thay thế mỗi chữ số hex bằng chuỗi 4 bit của nó. Không cần phép toán.
- Thập lục phân sang thập phân: nhân mỗi chữ số với giá trị vị trí tương ứng, tức là $16^2 = 256$, $16^1 = 16$, $16^0 = 1$.
22E$= 2 \times 256 + 2 \times 16 + 14 = 558$.
Convert hexadecimal 2E to denary.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
$2 \times 16 + 14 = 32 + 14 = 46$ (E is 14).
Convert the binary number 0010 0010 1110 to hexadecimal.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Each nibble converts on its own, from the right: 0010 = 2, 0010 = 2, 1110 = 14 = E.
Giá trị cần bao nhiêu bit?
- Các câu hỏi kỳ thi cố định chiều rộng thanh ghi (8, 12 hoặc 16 bit), và bạn phải thêm zeros ở đầu để đạt đúng chiều rộng đó. Số $558$ trong 12 bit là
0010 0010 1110, không bao giờ là10 0010 1110. - Số nguyên không dấu từ 0 đến $2^n - 1$ cần $n$ bit: 200 cần 8 bit (8 bit đạt 255), 1000 cần 10 bit (10 bit đạt 1023), 16 cần 5 bit (4 bit dừng ở 15).
- Một chữ số hex cần 4 bit, một chữ số BCD cần 4 bit, và một ký tự ASCII cần 7 bit, hoặc 8 bit cho Extended ASCII.
Write denary 558 as a 12-bit binary number (four bits per group, spaces allowed).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
558 = 512 + 32 + 8 + 4 + 2. Pad with leading zeros to the 12 bits the question asks for; an unpadded answer loses the mark.
Ví dụ minh họa: số bit tối thiểu
- Hệ thống phải lưu trữ các giá trị từ 0 đến 1000. Số bit nhỏ nhất là gì?
- Hỏi lũy thừa của 2 nào đầu tiên vượt quá 1000. $2^9 = 512$, quá nhỏ; $2^{10} = 1024$, nên 10 bit chứa được 0 đến 1023 và 1000 vừa vặn.
- Đáp án là 10 bit, và lý do là khoảng giá trị, không phải số lượng chữ số. Bẫy phổ biến: 16 cần năm bit, vì 4 bit chỉ đạt đến 15.
What is the smallest number of bits that can store any unsigned value from 0 to 1000?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Nine bits reach 511, ten bits reach 1023. The question is about the range the bits cover, not the number of digits.
Tiền tố binary và tiền tố thập phân
- Tiền tố thập phân là lũy thừa của 10 và dùng cho dung lượng ổ cứng và tốc độ mạng: kilo $= 10^3$, mega $= 10^6$, giga $= 10^9$, tera $= 10^{12}$.
- Tiền tố binary là lũy thừa của 2 và dùng cho kích thước bộ nhớ: kibi (Ki) $= 2^{10} = 1024$, mebi (Mi) $= 2^{20}$, gibi (Gi) $= 2^{30}$, tebi (Ti) $= 2^{40}$.
- Vì vậy, ổ "1 TB" chứa $10^{12}$ bytes, nhưng hệ điều hành báo cáo bằng TiB thì chia cho $2^{40}$ và hiển thị khoảng 0.91. Không có dữ liệu nào bị mất; chỉ là hai đơn vị khác nhau được sử dụng.
How many bytes are in 1 kibibyte (KiB)?
Difficulty 2/5 · 140 coins + a small bonus on first completion today
A kibibyte is $2^{10} = 1024$ bytes (a binary prefix, used for memory).
A drive sold as 1 TB holds fewer bytes than 1 TiB of memory.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
1 TB is 10^12 bytes; 1 TiB is 2^40, about 1.1 x 10^12. Decimal prefixes for drives, binary prefixes for memory.
的地方 hexadecimal thực sự được sử dụng
- Địa chỉ bộ nhớ và mã máy, vì một chữ số hex đúng bằng một nibble và một byte đúng bằng hai chữ số hex, nên bản dump dễ đọc ngay lập tức.
- Mã màu trong trang web:
#FF8800là một byte cho đỏ, xanh lá và xanh dương. MAC addresses và mã lỗi cũng tương tự. - Lý do luôn giống nhau: hex là ký hiệu rút gọn cho binary mà con người có thể đọc và viết mà không mắc sai sót, không phải hệ thống mà chính máy tính sử dụng.
Where is hexadecimal used in practice? Select all that apply.
Difficulty 2/5 · 140 coins + a small bonus on first completion today
Hex is a human-readable shorthand for binary: one digit per nibble, two per byte. The processor itself works in binary.
Điểm số dễ mất
- Thêm zeros cho đến đúng chiều rộng mà đề bài yêu cầu. Một đáp án thiếu zeros sẽ bị mất điểm ngay cả khi các bit đã chính xác.
- Nhóm nibbles từ phải sang trái, không phải từ trái sang phải,否则 mỗi chữ số hex sẽ lệch vị trí.
- 4 bit đạt 15, 8 bit đạt 255, 10 bit đạt 1023. "Cần bao nhiêu bit" là câu hỏi về khoảng giá trị.
- Một kibibyte là 1024 bytes và một kilobyte là 1000. Hãy nêu rõ bạn đã dùng đơn vị nào trong bất kỳ phép tính kích thước nào.
Bạn đã nắm vững
- denary cơ số 10, binary cơ số 2 (bit, nibble = 4 bits, byte = 8 bits), hexadecimal cơ số 16 nơi một chữ số đúng bằng một nibble
- chuyển từ thập phân sang nhị phân bằng cách trừ các lũy thừa của 2 hoặc bằng phép chia lặp lại, đọc phần dư từ dưới lên; nhị phân sang thập lục phân bằng cách nhóm các nibble từ phải sang trái; thập lục phân sang thập phân theo giá trị vị trí
- Thêm zeros cho đến đúng chiều rộng thanh ghi; một giá trị không dấu cần $n$ bit nơi $2^n$ vượt qua lần đầu tiên.
- tiền tố thập phân là lũy thừa của mười (động cơ, mạng), tiền tố nhị phân là lũy thừa của hai (bộ nhớ): kibi $= 1024$