Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ แปลงเลขฐานสอง (Binary) เป็นฐานสิบ (Decimal)


บทนำ

แปลงเลขฐานสอง (Base 2) เป็นฐานสิบ (Base 10)

ขั้นตอน

  1. อ่านบิตจากขวาไปซ้าย (LSB ไป MSB)
  2. คูณแต่ละบิตด้วย 2^position
  3. รวมผลคูณ

ตัวอย่าง

1010 = 0×2⁰ + 1×2¹ + 0×2² + 1×2³ = 0 + 2 + 0 + 8 = 10

ตัวอย่างโค้ด C++

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

int convert(string str) {
    int val = 0;
    int 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 << " after conversion into decimal: " << convert(val);
    return 0;
}

ผลลัพธ์

11101 after conversion into decimal: 29