HomeLập trình Scratch

Chuyển số trong hệ nhị phân sang số trong hệ thập phân bằng Scratch và Pascal

Like Tweet Pin it Share Share Email
Like và share giúp mình phát triển website nhé.
  •  
  •  

Hôm trước ta đã lập trình chuyển một số tự nhiên từ hệ thập phân sang hệ nhị phân rồi vậy thì cũng phải có chương trình chuyển ngược lại chứ nhỉ, ta cùng tìm giải thuật chuyển số trong hệ nhị phân sang số trong hệ thập phân và thử code bằng Pascal và Scratch nhé.

Xây dựng thuật toán chuyển số trong hệ nhị phân sang số trong hệ thập phân

VD: chuyển số 1000111 về số thập phân. Ta thấy số 1000111 có tổng cộng 7 kí tự, chúng ta sẽ đánh số 7 kí tự này từ phải sang trái và bắt đầu từ 0 như sau:

Số nhị phân 1 0 0 0 1 1 1
Thứ tự 6 5 4 3 2 1 0

Số thập phân kết quả sẽ là tổng các tích của kí tự nhị phân x 2 lũy thừa vị trí.

Tức là  1.26 + 0.25 + 0.24 + 0.23 + 1.22 + 1.21 + 1.20

= 64 + 0 + 0 + 0 + 4 + 2 + 1 = 71

Ý tưởng thuật toán như sau:

Tách từng kí tự của dãy nhị phân, sau đó dùng kĩ thuật cộng dồn để cộng các tích a[i]*LT(2,độ dài xâu-i)

Code chuyển số trong hệ nhị phân sang số trong hệ thập phân bằng Pascal

Code chuyển số trong hệ nhị phân sang số trong hệ thập phân bằng scratch

Viết bằng scratch thì còn dễ hơn nữa, nhưng bữa nay mình lười quá nên các bạn tự viết nhé, bạn nào viết rồi thì chia sẻ để các bạn cùng học tập nào.

Mà thôi cũng gợi ý tí để các bạn chưa biết có thể thực hiện. Theo thuật toán trên thì

  • length(s) trong Pascal thì mình dùng “Độ dài của ..” trong Scratch
  • Trong Pascal dùng val(s[i], m) để chuyển kí tự 0 hay 1 sang số 0 hay 1 thì trong scratch cứ truy cập trực tiếp bằng “chữ cái thứ … của …” mà tính thôi chẳng cần chuyển gì hết

Các bạn cứ theo thuật toán trong Pascal kia mà kéo thả để ra code trong Scratch nhé. Chúc các bạn thành công.

Comments (0)

Trả lời

Your email address will not be published. Required fields are marked *