Q:

Why is 1 * 4 = 196?

Im trying to make a binary converter, the problem however is that when I build it, it usually decrypts my test number "101" which should be 5 into something along the lines of 300 - 3000.
int main()
{

char a;
string bintered;
int bincrypted = 0, bincrypter;
cout<<"Would you like to try the binary to decimal converter? Y/N"<<endl;
cin>>a;

if (a == 'Y' || a == 'y')
{
    cout<<"Ok, enter a binary number and we will decrypt it > ";
    cin>>bintered;

    int x = bintered.length() - 1; //multiplier counting down
    int y = 0;
    int power = 0;
    while (x != -1)
    {
       power = bintered[y] * pow(2.0, x);
       bincrypted = bincrypted + power;
       y++;
       x = x - 1;
    }

    cout<<"Final answer is: "<<bincrypted<<endl;

}
return 0;
}

When I tried doing cout<<bintered[y] * pow(2.0, x); it gave me 196, 96 and 49 for the three loops it did. 
Am i using the pow function incorrectly or what?

A:

bintered[y] returns the ascii code of the character, so 48 for 0 and 49 for 1.

