C++ 八进制到十进制的转换(调试)

C++ 八进制到十进制的转换(调试),c++,debugging,C++,Debugging,因此,该代码旨在将十进制数转换为八进制数,我重载了运算符 想象一下x是9。你得到9%10=9+8^0=9+1=10 我猜那不是你想要的。您可能需要11,但实际上应该以字符串形式返回值 问题是一次处理10个可能的值(0-9),而实际处理的值不能超过8个。理想情况下,每次迭代都要将x移位3位,这样就可以始终表示正在处理的值 x&7将为您提供前3位的值,然后您可以将x移位3x>>3以准备接下来要读取的3位 以下是一些让您开始学习的内容: int main() { int x = 44;

因此,该代码旨在将十进制数转换为八进制数,我重载了运算符 想象一下
x
是9。你得到9%10=9+8^0=9+1=10

我猜那不是你想要的。您可能需要11,但实际上应该以字符串形式返回值

问题是一次处理10个可能的值(0-9),而实际处理的值不能超过8个。理想情况下,每次迭代都要将x移位3位,这样就可以始终表示正在处理的值

x&7
将为您提供前3位的值,然后您可以将x移位3
x>>3
以准备接下来要读取的3位

以下是一些让您开始学习的内容:

int main() {
    int x = 44;
    while(x > 0) {
        auto v = x&7;
        cout<<v<<endl;
        x=x>>3;
    }
}
intmain(){
int x=44;
而(x>0){
自动v=x&7;

cout八进制和十进制是整数值的外部表示形式。在内部,值只是一个值;它不是八进制,也不是十进制,也不是红色。将八进制输入转换为整数值意味着将文本输入转换为内部值;将值转换为八进制意味着生成一个表示内部值的文本字符串。十进制也是如此。因此,当您的任务是将八进制转换为十进制时,您以文本字符串开始,以文本字符串结束,通常转换为中间表示法中的整数值。因此,八进制-->整数-->十进制,实现为文本-->整数-->text.

1如果函数不返回值,您应该收到一个编译器警告。2您希望输出什么?整数是整数。八进制、十六进制、二进制和十进制是文本表示形式。您应该检查如何在这些表示形式中输出或输入数字
sum+=(x%10)+pow(8,i);
int main() {
    int x = 44;
    while(x > 0) {
        auto v = x&7;
        cout<<v<<endl;
        x=x>>3;
    }
}