gpt4 book ai didi

c++ - C++中如何将十进制转为二进制

转载 作者:行者123 更新时间:2023-11-30 01:32:08 25 4
gpt4 key购买 nike

我有一个将 dec 转换为 bin 的方法

QList<bool> widgetInput::decToBin(int number)
{
int remainder;
QList<bool> result;
if(number <= 1) {
result << number;
return result;
}

remainder = number%2;
decToBin(number >> 1);
result << remainder;


}

但不幸的是,此方法仅保存列表中的一个元素。但是当我用“cout << number”替换“result << number”时它会起作用。你能帮帮我,让我知道我的确切问题在哪里吗?

问候。

最佳答案

在每个递归步骤中,您都在创建一个新的 QList 结果;这是该步骤的局部,然后将其余部分插入其中。您不需要递归(通常在需要迭代时应该避免递归):

QList<bool> result;

while(number > 0) {
result << number%2;
number /=2;
}

// Edited to add: Just realized you would also have to reverse QList here.
// Depends on it's interface.

return result;

或者更好的是,只使用标准容器:

bitset<sizeof(int)*CHAR_BIT> bs(number);

关于c++ - C++中如何将十进制转为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2036592/

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