我写的从十六进制到十进制数字的转换有效,但是得到了一些意外的结果。

预期结果:十六进制数字“ 0000000F”,输出为十进制“ 15”

就我而言

1]如果“ 0000000F”是十六进制值,并且其转换为“ 1532”

2]如果“ 000000FF”是十六进制值,并且其转换为“ 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;
}
}

最佳答案

如果查看输出的第一部分,您会注意到它们是正确的。

但在这儿:

cout <<binNumber <<decimal;


您随后立即打印decimal,并且它尚未初始化。
去掉它。

(在相关说明中,请不要声明您认为将来某个时候可能需要的变量。许多错误会以这种方式消失。)

10-05 21:08
查看更多