Dãy 101011 trong hệ cơ số 2 bảng bao nhiêu ở hệ cơ số 16

Hệ đếm là một tập các kí tự [bảng chữ số] để biểu diễn các số và xác định giá trị của các biểu diễn số.

Các hệ đếm thường gặp

Có 2 loại hệ đếm cơ bản mà chúng ta vẫn thường gặp là:

  • Hệ đếm không vị trí  [hệ la mã,... và trong bài viết này mình sẽ không nhắc tới]
  • Hệ đếm có vị trí [hệ nhị phân, hệ thập phân, hệ thập lục phân,...]

1. Hệ số đếm có vị trí

Nguyên tắc chung

  • Cơ số của hệ đếm r là số kí hiệu được dùng.
  • Trọng số bất kì của một hệ đếm là ri [i có thể là số âm hoặc dương] giúp phân biệt giá trị biểu diễn của các chữ số khác nhau.
  • Mỗi số được biểu diễn bằng một chuỗi các chữ số, trong đó số ở vị trí thứ i có trọng số ri
  • Dạng tổng quát của một số trong hệ đếm có cơ số r là: [. . .a2a1a0.a-1a-2 . . .]r
    • giá trị của chữ số ai là 1 số nguyên trong khoảng 0 < ai < r

Biểu diễn số tổng quát:

Khi biểu diễn số ta thường thêm chỉ số để nhận biết chính xác hệ cơ số đang xét, ví dụ: 1010, 102, 1016

2. Hệ thập phân

Hệ thập phân [hệ đếm cơ số 10] là hệ đếm dùng số 10 làm cơ số. Đây là hệ đếm được sử dụng rộng rãi nhất trong các nền văn minh thời hiện đại.

Hệ gồm các chữ số 0,1,2,3,4,5,6,7,8,9 tạo nên.

Ví dụ:

33 = [3*10] + 3

5432 = [5*1000] + [4*100] + [3*10] + 2

Cơ số 10. Tức là, mỗi chữ số trong số được nhân với 10 mũ i, i tương ứng với vị trí của chữ số đó:

3310 = 3*101 + 3*100 

543210  = 5*103 + 4*101 + 3*101 + 2*100

Ví dụ biểu diễn số thực:

25.25610 = 2*101 + 5*100 + 2*10-1 + 5*10-2 + 6*10-3

  • Chữ số ngoài cùng bên trái là chữ số quan trọng nhất
  • Chữ số ngoài cùng bên phải là chữ số ít quan trọng nhất
  • Lưu ý chữ số sau dấu '.' cũng được biểu diễn tương tự nhưng số mũ giảm dần từ -1

3. Hệ nhị phân

Hệ nhị phân [hay hệ đếm cơ số hai hoặc mã nhị phân] là một hệ đếm dùng hai ký tự để biểu đạt một giá trị số, bằng tổng các lũy thừa của 2.

  • Hai chữ số: 0 và 1
  • Cơ số 2
  • Chữ số 1 và 0 trong ký hiệu nhị phân có cùng ý nghĩa như trong ký hiệu thập phân: 
  • Biểu diễn số nhị phân:  

  • Ví dụ:
    • 102 = 1*21 + 0*20 = 210
    • 1012 = 1*22 + 0*21 + 1*20 = 510
    • 100.101 = 1*22 + 0*21 + 0*20 + 1*2-1 + 0*2-2 + 1*2-3 = 4.62510
      • Lưu ý ở đây các hệ số bằng 0 chúng ta không cần viết vào cũng được

Cách chuyển đổi nhị phân sang thập phân:

Nhân mỗi chữ số nhị phân với 2i và cộng vào kết quả

Cách chuyển đổi từ thập phân sang nhị phân: 

Đổi riêng phần nguyên và phần Thập phân

  • Phần nguyên thập phân sang nhị phân:
    • Cách 1:
      • Chia lặp đi lặp lại số đó cho 2. Phép chia dừng lại khi kết quả lần chia cuối cùng bằng 0.
      • Lấy các số dư theo chiều đảo ngược sẽ được số nhị phân cần tìm.
    • Cách 2:
      • Phân tích số đó thành tổng của các số 2i
  • Phần thập phân sang nhị phân:
    • Nhân liên tiếp phần phân số của số thập phân với 2
    • Lần lượt lấy phần nguyên của tích thu được sau mỗi lần nhân là kết quả cần tìm.
    • Lấy phần phân số của tích nhân làm số bị nhân trong bước tiếp theo.

Ví dụ 1: Minh họa cách đổi 1110 sang nhị phân bằng cách 1

Ví dụ 2: Minh họa cách đổi 0.8110 sang nhị phân 

Do 0.81 là một số vô tỉ nên ta không thể biết chính xác được số chữ số phía sau dấu '.' nên ở đây kết quả mình lấy 6 số sau dấu '.'

Ví dụ 3: Minh họa cách đổi 0.2510 sang nhị phân

Do 0.25 = 1/4 là một số hữu tỉ nên theo cách đổi trên ta hoàn toàn có thể xác định được chính xác số chữ số sau dấu '.' và 0.2510 = 0.012

Code C++ đổi phần nguyên từ thập phân sang nhị phân viết bằng đệ quy:

void DectoBin[int n] { if[n!=0] { DectoBin[n/2]; cout

Chủ Đề