Menu
CoddyTech

Binary to Decimal

Bạn nhận được một chuỗi s biểu diễn một số không âm ở dạng nhị phân, chỉ dùng các ký tự 0 và 1. Hãy trả về giá trị của số đó dưới dạng số nguyên thông thường. Chuỗi không có số 0 ở đầu, ngoại trừ số 0 được biểu diễn bằng duy nhất ký tự 0.

Hàm

toDecimal(s: string) → integer
sstring
các chữ số nhị phân của số
Trả vềinteger
giá trị của s dưới dạng số nguyên

Ràng buộc

  • 1 ≤ s.length ≤ 31
  • s chỉ chứa 0 và 1.
  • s bắt đầu bằng 1, trừ khi s là "0".
  • Tự đọc các chữ số thay vì gọi hàm chuyển đổi cơ số có sẵn.

Ví dụ

Đầu vào
s = "1101"
Đầu ra
13
Giải thích
Đọc từ phải sang trái, các vị trí có giá trị lần lượt là 1, 2, 4 và 8. 1101 có chữ số 1 ở các vị trí 8, 4 và 1, nên 8 + 4 + 1 = 13.
challenge icon

Câu hỏi mở rộng

Bạn có thể đọc một số được viết ở bất kỳ cơ số nào từ 2 đến 16 bằng cùng một vòng lặp, trong đó các chữ cái từ a đến f biểu thị các chữ số từ 10 đến 15 không?

Đặt lại code
def toDecimal(s):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

s = "1101"

Đầu ra mong đợi

13