Почему 1 * 4 = 196? - PullRequest
       25

Почему 1 * 4 = 196?

0 голосов
/ 30 декабря 2018

Я пытаюсь сделать двоичный преобразователь, однако проблема в том, что, когда я его собираю, он обычно расшифровывает мой тестовый номер «101», который должен быть 5 во что-то вроде 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;
}

Когда я попытался сделать cout<<bintered[y] * pow(2.0, x);, мне дали 196, 96 и 49 для трех петель.Я неправильно использую функцию pow или как?

1 Ответ

0 голосов
/ 30 декабря 2018

bintered [y] возвращает ascii-код символа, поэтому 48 для 0 и 49 для 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...