C++:尝试在二进制到十进制转换器中多次将非常大的整数加在一起,而您的输入是字符串值

标签 c++ data-structures

template <class Type>
string MyStack<Type>::binaryToDecimal2(string n)
{
//variable declaration and initialization
string dec = "";
MyStack<string> stk;
for (unsigned int i = 0; i < n.length(); i++)
{
    string s = to_string((n[i] - '0') * pow(2, (n.length() - i - 1)));
    stk.push(s);
}
while (!stk.isEmptyStack()){
    string item;
    item = stk.top();
    stk.pop();
    cout << item << endl;
}
return dec;
}

我如何才能更改 binaryToDecimal2 以便在不丢失数据的情况下成功地将我的字符串加在一起?我试过将要加在一起的元素设为无符号整数,但如果值太大,我得到的值就不正确。 enter image description here

在照片中,您输入一个二进制数,而表示等效十进制数的行是:当我使用整数时。有很多小数的数字是在 while 循环内从我的堆栈中输出的。我如何才能将所有这些数字相加并将它们放入 dec 中以进行输出?

最佳答案

1) 结果是不准确还是完全错误?为了“太大”,数字必须有多大? 我无法运行您的代码,因为它不完整,num 已定义但从未使用过。如果您尝试分配一个大于 2³² 的数字,它当然不能被 num 捕获。

2) std::pow 返回一个 float ,然后将其转换为字符串。执行后

std::string n = "10100";
std::vector<std::string> stk;
for (unsigned int i = 0; i < n.length(); i++)
{
    std::string s = std::to_string((n[i] - '0') * std::pow(2, (n.length() - i - 1)));
    stk.push_back(s);
}

stk

16.000000                                                                                                                    
0.000000                                                                                                                     
4.000000                                                                                                                     
0.000000                                                                                                                     
0.000000  

但我很确定 findSum 期望传递的字符串不包含点。

关于C++:尝试在二进制到十进制转换器中多次将非常大的整数加在一起,而您的输入是字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59260901/

相关文章:

c++ - 类型 "const <Component> *"的值无法分配给类型 "<Component> *"的实体

c++ - 物理内存上的堆和栈在哪里?

algorithm - 更好解决方案的方法 - 中位数之和

c++ - 为什么没有隐式类型转换的警告?

c++ - mmap 损坏,malloc 是否覆盖内存上的元素

c++ - 既然可以使用copy shell命令,为什么还要自己写一个copy程序呢?

string - 字符串中的子序列出现

c - 三元搜索树的插入函数 - C

data-structures - 我们需要最短路径树的任何现实问题吗?

data-structures - 是否可以在不使用数组的情况下实现 O(1) 搜索的数据结构实现?