บทนำ
แปลงเลขฐานสอง (Base 2) เป็นฐานสิบ (Base 10)
ขั้นตอน
- อ่านบิตจากขวาไปซ้าย (LSB ไป MSB)
- คูณแต่ละบิตด้วย 2^position
- รวมผลคูณ
ตัวอย่าง
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