十六进制到十进制转换的未清理答案

Uncleared Answer of Hexadecimal to decimal conversion

本文关键字:答案 十进制 转换 十六进制      更新时间:2023-10-16

我写的从十六进制到十进制的转换正在进行,但得到了一些意外的结果。

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

在我的情况下

1] 如果"0000000 F"是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;
}
}

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

但是这里:

cout <<binNumber <<decimal;

之后立即打印decimal,但它未初始化
移除它。

(与此相关的是,不要声明你认为在未来某个时候可能需要的变量。许多错误都潜伏在下面。(

// 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;
}
}