29.">
 Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình chuyển đổi nhị phân sang thập phân trong C++

Chuyển số nhị phân (chuỗi '0'/'1') sang thập phân.

Cách làm: Duyệt chuỗi từ phải sang trái, nếu ký tự '1' thì cộng thêm 2^vị_trí (bắt đầu từ 1, nhân 2 mỗi bước).

Ví dụ

Input: 1010
0*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 0+2+0+8 = 10

Thuật toán

Bắt đầu
Bước 1: Hàm convert(string str)
    val = 0, temp = 1
    Với i từ len-1 xuống 0:
        Nếu str[i] == '1' -> val += temp
        temp *= 2
    Trả về val
Bước 2: main()
    val = "11101"
    In convert(val)
Kết thúc

Ví dụ code

#include <iostream>
#include <string>
using namespace std;

int convert(string str) {
    int val = 0, temp = 1;
    int len = str.length();
    for (int i = len - 1; i >= 0; i--) {
        if (str[i] == '1') val += temp;
        temp *= 2;
    }
    return val;
}

int main() {
    string val = "11101";
    cout << val << " chuyen sang thap phan: " << convert(val);
    return 0;
}

Kết quả

11101 chuyen sang thap phan: 29