Необработанный ответ шестнадцатеричного в десятичное преобразование - PullRequest
0 голосов
/ 23 октября 2019

Преобразование, которое я написал из шестнадцатеричного в десятичное число, работает, но получим немного неожиданный результат.

Ожидаемый результат: шестнадцатеричный номер "0000000F" и вывод в десятичном формате "15"

В моем случае

1], если "0000000F"HEX-значение и его преобразование равно "1532"

2], если "000000FF" - это значение HEX, а его преобразование - "25532"

Я не уверен, какая часть программирования неправильна? каждый раз, когда я получаю «32» после любого десятичного значения результата. Кто-нибудь может подсказать, как решить эту проблему?

#include <iostream>
using namespace std ;
#include <sstream>

int wmain() {
while(1)
{
int binNumber ;
unsigned int decimal;
string hexString = "0000000F"; //you may or may not add 0x before
stringstream myStream;
myStream <<hex <<hexString;
myStream >>binNumber;
cout <<binNumber <<decimal;
//return 0;
}
}

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Если вы посмотрите на первые части ваших выходов, вы заметите, что они правильные.

Но здесь:

cout <<binNumber <<decimal;

вы печатаете decimal сразу после этого,и он не инициализирован.
Удалите его.

(В связанной заметке не объявляйте переменные, которые, по вашему мнению, могут вам понадобиться в будущем. Многие ошибки скрываются таким образом.)

0 голосов
/ 24 октября 2019
// Correct code  
 #include <iostream>
 using namespace std ;
 #include <sstream>

int wmain() {
while(1)
{
 int binNumber ;
 // unsigned int dummy=0;
  string hexString = "000000FF"; //you may or may not add 0x before
 stringstream myStream;
 myStream <<hex <<hexString;
 myStream >>binNumber;
 cout <<binNumber ;
  //return 0;
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...