有没有其他方法可以实现十进制到八进制的转换?
时间: 2024-10-29 11:15:58 浏览: 9
当然有其他方法实现十进制到八进制的转换,比如使用数组和循环进行逐位运算。这种方法通常会手动模拟除以8并取余的过程,直到商为0。下面是一个基于数组的例子:
```cpp
#include <iostream>
#include <vector>
std::string decimalToOctal(int decimal) {
std::vector<int> digits(4, 0); // 预先分配最多四位的八进制数字
for (int i = 3; decimal != 0; i--) { // 从最低位开始
digits[i] = decimal % 8; // 取余得到当前位的值
decimal /= 8; // 向高位移动一位
}
// 逆序输出,因为最低位在前
std::string octal = "";
for (int i = 3; i >= 0; i--) {
octal += std::to_string(digits[i]);
}
return octal;
}
int main() {
int decimal_num = 123;
std::string octal_num = decimalToOctal(decimal_num);
std::cout << "Decimal: " << decimal_num << ", Octal: " << octal_num << std::endl;
return 0;
}
```
这个方法通过每次迭代处理八进制的一位,并把每一位的结果存储在数组里,最后再组合成完整的八进制字符串。
阅读全文