Được cung cấp với một số nhị phân làm đầu vào, nhiệm vụ là chuyển đổi số nhị phân đã cho thành số thập phân.
Số thập phân trong máy tính được biểu diễn với cơ số 10 và số nhị phân được biểu thị với cơ số 2 vì nó chỉ có hai chữ số nhị phân 0 và 1 trong khi số thập phân có thể là bất kỳ chữ số nào bắt đầu từ 0 - 9.
Để chuyển đổi một số nhị phân thành một số thập phân, chúng tôi sẽ trích xuất các chữ số bắt đầu từ phải sang trái cho đến phần dư và sau đó nhân nó với lũy thừa của 2 bắt đầu từ 0 và sẽ được tăng lên 1 cho đến (số chữ số) - 1 và với tiếp tục cộng các giá trị nhân để nhận được giá trị thập phân cuối cùng.
Dưới đây là mô tả bằng hình ảnh của việc chuyển đổi một số nhị phân thành một số thập phân.
Ví dụ
Input-: 1010 0 will be converted to a decimal number by -: 0 X 2^0 = 0 1 have corresponding binary equivalent of 3 digit -: 1 X 2^1 = 2 0 have corresponding binary equivalent of 3 digit -: 0 X 2^2 = 0 1 have corresponding binary equivalent of 3 digit -: 1 X 2^3 = 8 Output-: total = 0 + 2 + 0 + 8 = 10
Thuật toán
Start Step1-> Declare function to convert binary to decimal int convert(string str) set string n = str set int val = 0 set int temp = 1 set int len = n.length() Loop For int i = len - 1 i >= 0 i— IF n[i] == '1' Set val += temp End Set temp = temp * 2 End return val Step 2-> In main() Set string val = "11101" Call convert(val) Stop
Ví dụ
#include <iostream> #include <string> using namespace std; //convert binary to decimal int convert(string str) { string n = str; int val = 0; int temp = 1; int len = n.length(); for (int i = len - 1; i >= 0; i--) { if (n[i] == '1') val += temp; temp = temp * 2; } return val; } int main() { string val = "11101"; cout<<val<<" after converion into deciaml : "<<convert(val); }
Đầu ra
NẾU CHÚNG TÔI CHẠY MÃ TRÊN, NÓ SẼ TẠO ĐẦU RA SAU ĐÂY
11101 after converion into deciaml : 29