十进制转换成八进制C语言
时间: 2024-09-29 14:03:50 浏览: 37
在C语言中,将十进制数转换为八进制可以使用`octave()`函数或者手动通过循环和除法操作来实现。这里提供两种方法:
1. **使用库函数**:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int decimal_num = 1234; // 要转换的十进制数
char octal[10]; // 存储八进制结果
sprintf(octal, "%o", decimal_num);
printf("八进制表示: %s\n", octal);
return 0;
}
```
在这个例子中,`sprintf()`函数结合了格式化字符串"%o",会自动将十进制数转换为对应的八进制形式。
2. **手动转换** (使用位运算):
```c
#include <stdio.h>
void decimalToOctal(int decimal, char* octal) {
for (int i = 0, shift = 0; decimal > 0; ++i) {
octal[i] = decimal % 8 + '0';
decimal /= 8;
shift++;
}
octal[i] = '\0'; // 添加终止符
}
int main() {
int decimal_num = 1234;
char octal[10];
decimalToOctal(decimal_num, octal);
printf("八进制表示: %s\n", octal);
return 0;
}
```
这个版本通过循环和位运算逐步计算并存储八进制每一位。
阅读全文