Computer >> Máy Tính >  >> Lập trình >> C ++

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

Đượ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.

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

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