gpt4 book ai didi

c++ - 从十进制->二进制转换返回二进制字符串而不是打印值

转载 作者:行者123 更新时间:2023-11-28 02:12:02 29 4
gpt4 key购买 nike

我创建了一个程序,可以递归地将小数转换为二进制并将值打印到屏幕上。

但是,我希望该程序返回一个 string,其中包含构成二进制数的 1 和 0。我尝试了很多方法都没有成功,我不确定如何实现此更改。

void decToBin(int n) {
int remainder;
remainder = n%2;
if(n > 0) {
decToBin(n/2);
cout << remainder;
}
}

最佳答案

使用内存流代替 std::cout,并在最后返回缓冲区:

#include <sstream>

std::string decToBin(int n) {
std::ostringstream stream;
int remainder = n % 2;
if (n > 0) {
stream << decToBin(n / 2);
stream << remainder;
}
return stream.str();
}

也就是说,这效率很低,因为有很多字符串分配。您可能需要一种迭代算法而不是递归算法,因此您只需要一个字符串流。

关于c++ - 从十进制->二进制转换返回二进制字符串而不是打印值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35302402/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com