Hệ đếm: bài tập có lời giải từng bước

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ễ
nhấp vào các bit để đặt chúng012806403201608040201

Đặ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.

Bài tiếp theo →
Luyện tập Hệ đếm miễn phíLuyện tập Hệ đếm ngay5 bài miễn phí mỗi ngày. Không cần thẻ.

Bạn luyện tập những gì

  1. Dễnhị phân và thập lục phân sang thập phân
  2. Trung bìnhsố bù hai
  3. Khóbit, phạm vi và bộ nhớ

Công thức chính

Giá trị vị trí
nhị phân 2k, bát phân 8k, thập lục phân 16k
Sang thập phân
Σ dk·bk
Từ thập phân
chia cho cơ số, đọc các số dư từ dưới lên
Thập lục phân ↔ nhị phân
một chữ số thập lục phân = 4 bit
Số bù hai
đảo các bit và cộng 1

Học Hệ đếm từ đầu

1Hệ đế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.

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?
  1. 7000
  2. 700
  3. 70
  4. 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.

012806413211608041201

Để đọ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?
  1. 110
  2. 11
  3. 161
  4. 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.

1−12806403201608041211

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?
  1. 255
  2. −127
  3. −128
  4. −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:

  1. 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.
  2. Trong hex, thay mỗi chữ cái bằng giá trị của nó: A = 10 cho đến F = 15.
  3. 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:

  1. Để đọ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.
  2. Để viết −x, viết +x bằng 8 bit, đảo mọi bit rồi cộng 1.
  3. 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ớ:

  1. n bit cho 2ⁿ dãy khác nhau.
  2. 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.
  3. Để mỗi trong k mục có mã riêng, tìm b nhỏ nhất sao cho 2b ≥ k.
  4. 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

1−12806413211608141201

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?
  1. 0000 0101
  2. 1000 0101
  3. 1111 1010
  4. 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?
  1. 188
  2. 512
  3. 8
  4. 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.

Học từng bước một trong ứng dụngHọc từng bước một trong ứng dụng

Ví dụ có lời giải

Ví dụ 1Dễ
giá trị vị trí2256B16E1

Đổi số thập lục phân 0x2BE sang thập phân. Tìm N.

0x2BEA = 10 … F = 15

Tìm N

Hiện các gợi ý
  1. Các vị trí thập lục phân có giá trị 1, 16, 256, 4096 từ phải sang.
  2. 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.
  3. 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
Số bù hai 8 bit0−12806403201608040201

Đặ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?

N = −458 bit

Tìm U

Hiện các gợi ý
  1. Viết 45 dưới dạng nhị phân, đảo mọi bit, rồi cộng 1.
  2. 45 = 0010 1101₂.
  3. Dưới dạng số không dấu, mẫu bằng 256 + N.
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.

Đả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ó
nhấp vào các bit để đặt chúng012806403201608040201

Đặ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 ý
  1. 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.
  2. Làm từng vị trí bit một, từ trái sang phải.
  3. 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.

Các chủ đề trước và sau chủ đề này

Tiếp tục với

Máy tính

Các môn học có chủ đề này

Thêm chủ đề trong Khoa học máy tính

Phiếu bài tập in được

Luyện tập Hệ đếm miễn phíLuyện tập Hệ đếm ngay5 bài miễn phí mỗi ngày. Không cần thẻ.