c语言循环语句实现十进制整数转换为八进制
时间: 2024-11-09 09:24:44 浏览: 18
在C语言中,你可以使用while循环结合取模运算(%)来实现十进制整数转换为八进制。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数用于将十进制转换为八进制字符串
char* decimal_to_octal(int decimal) {
char octal[50]; // 存储结果的大数组,最多支持3位八进制(每一位最多8个字符)
int i = 0;
while (decimal > 0) {
octal[i++] = decimal % 8 + '0'; // 取余并加上ASCII值对应的字符(0-7对应'0'-'7')
decimal /= 8; // 将原数除以8,做下一次迭代
}
// 如果结果不满三个数字,需要添加前导零
if (i < 3) {
for (int j = 0; j < 3 - i; j++)
octal[j] = '0';
}
octal[i] = '\0'; // 结束字符串
return octal;
}
int main() {
int decimal_num = 1234;
char* octal_str = decimal_to_octal(decimal_num);
printf("十进制 %d 转换为八进制是: %s\n", decimal_num, octal_str);
free(octal_str); // 释放内存
return 0;
}
```
在这个程序中,我们通过不断取余8,并累加到字符串中,直到十进制数转换成八进制形式。
阅读全文