Bài tập Hệ đếm miễn phí có hình vẽ, gợi ý và lời giải đầy đủ. Số liệu mới mỗi lần, ở ba mức độ: nhị phân và thập lục phân sang thập phân, số bù hai, bit, phạm vi và bộ nhớ.
Bài tập miễn phíDễ
Đặt các bit để thanh ghi 8 bit chứa 0x99. Giá trị N của mẫu theo hệ thập phân là bao nhiêu?
0x99
Nhấp vào một bit để chuyển nó giữa 0 và 1. Ô hiển thị mẫu của bạn dưới dạng số không dấu, và bạn cũng có thể nhập trực tiếp. Đáp án chính xác: một số nguyên, không làm tròn.
Trong đời sống hằng ngày bạn đếm theo hệ thập phân, cơ số 10. Nó có mười chữ số, từ 0 đến 9, và mỗi hàng có giá trị gấp mười lần hàng bên phải nó.
Trong 352, số 3 có giá trị 300, số 5 có giá trị 50 và số 2 có giá trị 2. Các hàng có giá trị 1, 10, 100 tính từ bên phải.
352 = 3 · 100 + 5 · 10 + 2 · 1
Máy tính lưu mọi thứ dưới dạng các công tắc bật hoặc tắt. Vì vậy nó đếm theo hệ nhị phân, cơ số 2, chỉ với hai chữ số 0 và 1.
Một chữ số nhị phân là một bit. Một nhóm 8 bit là một byte.
Quy tắc giống nhau ở mọi cơ số: mỗi chữ số có giá trị bằng giá trị của nó nhân với một lũy thừa của cơ số.
Tự kiểm tra Trong số thập phân 4721, chữ số 7 có giá trị bao nhiêu?
7000
700
70
7
Đáp số: 700. Đếm từ bên phải, các hàng có giá trị 1, 10, 100 và 1000. Chữ số 7 ở hàng thứ ba, nên nó có giá trị 7 · 100 = 700.
2Nhị phân và thập lục phân
Trong hệ nhị phân, các hàng có giá trị 1, 2, 4, 8, 16 và cứ thế, tính từ bên phải. Mỗi hàng có giá trị gấp đôi hàng bên phải nó.
Với số 8 bit, các hàng có giá trị 128, 64, 32, 16, 8, 4, 2 và 1.
Để đọc một số nhị phân, hãy cộng giá trị hàng của mọi bit bằng 1. Với 0011 0010 đó là 32 + 16 + 2 = 50.
Các dãy bit dài rất khó đọc. Lập trình viên thường viết chúng bằng hệ thập lục phân (hex), cơ số 16, thay vào đó.
Hex cần 16 chữ số. Nó dùng 0 đến 9 rồi các chữ cái A = 10, B = 11, C = 12, D = 13, E = 14 và F = 15.
Các hàng hex có giá trị 1, 16, 256 và 4096, tính từ bên phải. Một số hex thường được viết với 0x ở đầu, ví dụ 0x2F.
Một chữ số hex đúng bằng 4 bit, nên 0011 0010 là 0x32: 0011 là 3 và 0010 là 2.
Tự kiểm tra 0x1A bằng bao nhiêu trong hệ thập phân?
110
11
161
26
Đáp số: 26. A = 10. Các hàng là 16 và 1, nên 1 · 16 + 10 · 1 = 26. Viết các chữ số cạnh nhau (110) hoặc cộng chúng (11) là bỏ qua giá trị hàng. 161 dùng các hàng sai thứ tự.
3Số âm: bù hai
Một byte có mọi hàng đều dương lưu các số từ 0 đến 255. Cách này gọi là không dấu.
Để lưu số âm, máy tính dùng bù hai. Thay đổi duy nhất là bit ngoài cùng bên trái có giá trị −128 thay vì +128.
Vậy 1000 0011 là −128 + 2 + 1 = −125. Bit ngoài cùng bên trái gọi là bit dấu: khi nó bằng 1, số đó âm.
Một số bù hai 8 bit chạy từ −128 (1000 0000) đến +127 (0111 1111).
Để viết số âm −x, bắt đầu từ +x ở dạng nhị phân, đảo mọi bit (0 thành 1, 1 thành 0) rồi cộng 1.
Ví dụ với −5: 5 là 0000 0101. Đảo bit được 1111 1010. Cộng 1 được 1111 1011.
Cùng dãy bit đó đọc theo không dấu có giá trị 256 − x. Với −5 đó là 251, và 1111 1011 đúng là 128 + 64 + 32 + 16 + 8 + 2 + 1 = 251.
Tự kiểm tra Dãy 8 bit 1111 1111 lưu một số bù hai. Giá trị của nó là bao nhiêu?
255
−127
−128
−1
Đáp số: −1. −128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = −1. 255 là cách đọc không dấu. −127 có được khi coi bit đầu như dấu trừ đứng trước 111 1111.
4Phương pháp từng bước
Nhị phân hoặc hex sang thập phân:
Viết giá trị hàng dưới mỗi chữ số: các lũy thừa của 2 cho nhị phân, các lũy thừa của 16 cho hex, bắt đầu bằng 1 ở bên phải.
Trong hex, thay mỗi chữ cái bằng giá trị của nó: A = 10 cho đến F = 15.
Nhân mỗi chữ số với giá trị hàng của nó rồi cộng tất cả lại.
Bù hai:
Để đọc một dãy bit, cho bit ngoài cùng bên trái giá trị −128 (với 8 bit) và cộng giá trị hàng của tất cả các bit 1.
Để viết −x, viết +x bằng 8 bit, đảo mọi bit rồi cộng 1.
Giá trị không dấu của dãy bit đó là 256 − x. Dùng nó để kiểm tra các bit của bạn.
Bit, phạm vi và bộ nhớ:
n bit cho 2ⁿ dãy khác nhau.
Không dấu thì chúng lưu 0 đến 2ⁿ − 1. Với bù hai thì chúng lưu −2ⁿ⁻¹ đến 2ⁿ⁻¹ − 1.
Để mỗi trong k mục có mã riêng, tìm b nhỏ nhất sao cho 2b ≥ k.
Với bộ nhớ, nhân số mục với số bit mỗi mục, rồi chia cho 8 để ra byte và chia cho 1024 để ra KiB.
M = chiều rộng × chiều cao × số bit mỗi điểm ảnh / 8 / 1024 (KiB)
5Một ví dụ có lời giải
Theo dõi từng bước. Hãy thử đoán bước tiếp theo trước khi mở nó.
Ví dụ có lời giải
Dãy 8 bit 1011 0110 lưu một số nguyên có dấu ở dạng bù hai. Giá trị N của nó trong hệ thập phân là bao nhiêu?
1
Viết giá trị các hàng
Trong bù hai, hàng ngoài cùng bên trái có giá trị −128. Các hàng khác là 64, 32, 16, 8, 4, 2 và 1.
2
Nhìn vào bit dấu
Bit ngoài cùng bên trái là 1, nên số này âm.
3
Cộng các bit 1
Các bit 1 nằm ở các hàng −128, 32, 16, 4 và 2.
N = −128 + 32 + 16 + 4 + 2 = −74
4
Kiểm tra bằng giá trị không dấu
Đọc theo không dấu, dãy bit là 128 + 32 + 16 + 4 + 2 = 182.
Với số âm, giá trị không dấu là 256 − x, nên x = 256 − 182 = 74. Điều đó lại cho N = −74.
5
Kiểm tra bằng cách đảo bit
Đảo 1011 0110 được 0100 1001, rồi cộng 1 được 0100 1010.
0100 1010 là 64 + 8 + 2 = 74. Vậy dãy bit ban đầu là −74.
Đáp số
N = −74
6Lỗi thường gặp
Quên cộng 1 sau khi đảo bit. Kết quả sẽ thấp hơn một.
Đọc một dãy bù hai như số không dấu, ví dụ 1111 1111 là 255 thay vì −1.
Coi bit dấu như dấu trừ đứng trước các bit khác. Trong bù hai nó có giá trị −128.
Đặt các hàng sai thứ tự. Hàng có giá trị 1 luôn ở bên phải.
Dùng A = 11 trong hex. Các chữ cái bắt đầu từ A = 10.
Lẫn bit với byte trong các câu hỏi về bộ nhớ. Hãy chia số bit cho 8.
Tự kiểm tra −5 là dãy bù hai 8 bit nào?
0000 0101
1000 0101
1111 1010
1111 1011
Đáp số: 1111 1011. 5 là 0000 0101. Đảo bit được 1111 1010, và cộng 1 được 1111 1011. 1111 1010 quên cộng 1, và 1000 0101 đặt dấu trừ trước số 5.
7Các câu hỏi thi trông như thế nào
Dễ: nhị phân và hex sang thập phân. Chuyển một số nhị phân 8 bit hoặc một số hex 3 chữ số sang thập phân.
Trung bình: số bù hai. Đọc giá trị của một chuỗi 8 bit có dấu, hoặc viết một số âm thành chuỗi bit và cho biết giá trị không dấu của nó.
Khó: bit, miền giá trị và bộ nhớ. Giá trị lớn nhất hoặc âm nhất biểu diễn được bằng n bit, số bit cần có cho k mã, hoặc dung lượng bộ nhớ của một ảnh.
Ví dụ một câu hỏi khó: một ảnh 256 × 256 với 24 bit mỗi điểm ảnh chiếm 256 · 256 · 24 / 8 / 1024 = 192 KiB.
Tự kiểm tra Cần ít nhất bao nhiêu bit để 375 phần tử đều có mã riêng?
188
512
8
9
Đáp số: 9. 2⁸ = 256 mã là quá ít, 2⁹ = 512 mã là đủ, nên cần 9 bit. 512 là số mã, không phải số bit.
Các vị trí thập lục phân có giá trị 1, 16, 256, 4096 từ phải sang.
Thay các chữ cái bằng giá trị của chúng (A = 10 … F = 15), nhân với giá trị vị trí rồi cộng lại.
2 = 2, B = 11, E = 14.
Hiện đáp án và lời giải từng bước
Hệ đếm theo vị trí: mỗi chữ số có giá trị bằng giá trị của nó nhân với một lũy thừa của cơ số. Trong hệ nhị phân, các vị trí có giá trị 1, 2, 4, 8, 16, …; trong hệ thập lục phân 1, 16, 256, …, với A–F biểu diễn 10–15. Trong số bù hai 8 bit, bit ngoài cùng bên trái có giá trị −128 thay vì +128, đó là cách lưu số âm.
Nhân mỗi chữ số với giá trị vị trí của nó
2·256 + 11·16 + 14·1 = 702
Đáp số
0x2BE = 702
Ví dụ 2Trung bình
Đặt các bit để lưu −45 theo bù hai 8 bit. Đọc như một số không dấu, giá trị U của mẫu là bao nhiêu?
Đặt các bit: mỗi bit có giá trị bằng một lũy thừa của hai (128, 64, …, 1). Một chữ số hex đúng bằng bốn bit, và trong bù hai 8 bit, bit ngoài cùng bên trái có giá trị −128. Các phép toán theo bit làm việc trên từng vị trí bit riêng biệt.
Đảo bit và cộng một
45 = 0010 1101
đã đảo: 1101 0010
+1 → 1101 0011
Đọc như số không dấu
1101 0011₂ = 256 − 45 = 211
Đáp số
U = 211
Ví dụ 3Khó
Đặt các bit thành kết quả 8 bit của 0111 0001 >> 3. Giá trị R của kết quả theo hệ thập phân là bao nhiêu?
0111 0001>> 3
Tìm R
Hiện các gợi ý
Dịch phải 3 vị trí di chuyển mọi bit 3 vị trí sang phải; các bit rơi ra khỏi đầu bên phải bị mất và các số không đi vào ở bên trái.
Làm từng vị trí bit một, từ trái sang phải.
Bốn bit đầu của kết quả là 0000.
Hiện đáp án và lời giải từng bước
Đặt các bit: mỗi bit có giá trị bằng một lũy thừa của hai (128, 64, …, 1). Một chữ số hex đúng bằng bốn bit, và trong bù hai 8 bit, bit ngoài cùng bên trái có giá trị −128. Các phép toán theo bit làm việc trên từng vị trí bit riêng biệt.
Từng bit một
Dịch phải 3 vị trí di chuyển mọi bit 3 vị trí sang phải; các bit rơi ra khỏi đầu bên phải bị mất và các số không đi vào ở bên trái.
0111 0001 >> 3
= 0000 1110
Giá trị của kết quả
0000 1110₂ = 14
Đáp số
R = 14
Câu hỏi thường gặp
Hệ đếm là gì?
Trong đời sống hằng ngày bạn đếm theo hệ thập phân, cơ số 10. Nó có mười chữ số, từ 0 đến 9, và mỗi hàng có giá trị gấp mười lần hàng bên phải nó.
Trong 352, số 3 có giá trị 300, số 5 có giá trị 50 và số 2 có giá trị 2. Các hàng có giá trị 1, 10, 100 tính từ bên phải.
Làm thế nào để giải bài tập Hệ đếm từng bước?
Hệ đếm theo vị trí: mỗi chữ số có giá trị bằng giá trị của nó nhân với một lũy thừa của cơ số. Trong hệ nhị phân, các vị trí có giá trị 1, 2, 4, 8, 16, …; trong hệ thập lục phân 1, 16, 256, …, với A–F biểu diễn 10–15. Trong số bù hai 8 bit, bit ngoài cùng bên trái có giá trị −128 thay vì +128, đó là cách lưu số âm.
Các bài tập Hệ đếm bao gồm những gì?
Dễ: nhị phân và thập lục phân sang thập phân
Trung bình: số bù hai
Khó: bit, phạm vi và bộ nhớ
Mỗi bài tập có số liệu mới, nên bạn học phương pháp chứ không học thuộc đáp án. Bí rồi? Hãy mở một gợi ý nhỏ trước, và chỉ xem giải thích đầy đủ khi cần.
Cách luyện tập hoạt động
Mỗi bài tập có số liệu mới, nên bạn học phương pháp chứ không học thuộc đáp án.
Bí rồi? Hãy mở một gợi ý nhỏ trước, và chỉ xem giải thích đầy đủ khi cần.
Tiến độ, lỗi sai và các bài đã lưu của bạn được giữ lại, để bạn xem lại trước kỳ thi.