Zamiana liczby z systemu binarnego na dziesiętny w C++. Autor: Adam Czwordon.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

using namespace std;
//a do potegi b, oblicza - można użyć zamiast tego funkcji pow(a,b) z biblioteki <math.h>
int power(int a, int b) {
   int wynik = 1;
   for(int i=0;i<b;i++) {
     wynik *= a;
   }
   return wynik;
}

int main(int argc, char** argv) {
 string bin;
 int potega = 0;
 int wynik = 0;
 int cyfra;
 cout << "Podaj liczbę binarna: ";
 cin >> bin;
 for(int i=bin.length()-1; i>=0; i--) { //od końca do początku stringu
   cyfra = bin[i] - 48; //zamiana znaku char z kodu ASCII na cyfrę int
   if (cyfra != 0 && cyfra != 1) { //błędna liczba
     cerr<<"Nieprawidlowa liczba "<<bin;
     return 1;
   }
   wynik += power(2, potega++) * cyfra;
 }

 cout<<"W systemie dziesietnym: "<<wynik;

 return 0;
}
C