gpt4 book ai didi

c++ - 在 c++ 中,如何确定在将八进制数转换为十进制数时何时退出循环?

转载 作者:行者123 更新时间:2023-11-28 07:46:13 26 4
gpt4 key购买 nike

请记住,我对 C++ 几乎是全新的,这只是我必须为我的类(class)做的一个程序。我想我明白我实际上会怎么做。我只是不确定将什么作为我的 while 循环的控制条件。我应该能够转换给定的任何八进制数,那么我怎么知道我什么时候到达第一个数字并且应该停止呢?我使用增加的 %10 单位(又名 %10、%100、%1000)从右向左移动数字,但我怎么知道什么时候应该停止这样做?就像数字 112 一样,我需要做 %10、%100 和 %100,但不要超过它。

#include <iostream>
#include <cmath>
using namespace std;

int main ()
{
cout <<"Please enter the octal number to be converted: " <<
int octal;
cin >> octal;

int remainder = 0;
int modular = 10;

int conversionToDecimal = 0;
while(modular < ***********)
remainder = octal%modular;
if (remainder < 10)
{
conversionToDecimal = conversionToDecimal + (remainder *(int)pow(8.0,count));
count = 0;
modular = modular*10;
}
else
{
remainder = remainder/10;
count++;
}

显然程序并不完整,这只是我发现问题时得到的代码。我将 * 放在我需要代码帮助的地方。非常感谢!简而言之,我应该如何控制我的循环,这样我才不会超出八进制数的前面?

最佳答案

您可以使用与将数字转换为十进制数字字符串时相同的方法:每个索引都有一个数字的数组。对于每次迭代,您取 10 的模,并存储该数字,然后除以 10。当数字为零时(在循环结束时),您就完成了。

然后一次从数组中取出一个数字,然后将您的“总数”乘以 8,再加上当前数字。当您没有更多数字时,您就完成了。

我会留给您编写实际代码来执行此操作 - 毕竟,您是学习编程的人 - 我已经做了 30 多年了。

关于c++ - 在 c++ 中,如何确定在将八进制数转换为十进制数时何时退出循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14844978/

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