10进制到8进制的转换C语言
时间: 2024-10-20 09:18:27 浏览: 10
C语言进制转换代码分享
5星 · 资源好评率100%
在C语言中,将10进制数转换成8进制可以使用内置函数`itoa()`或者手动位操作。以下是使用`itoa()`的例子:
```c
#include <stdio.h>
#include <stdlib.h> // 包含itoa函数
void dec_to_oct(int decimal) {
char octal[11]; // 存储8进制结果的空间,+1为了空格
itoa(decimal, octal, 8); // 将decimal转换为8进制字符串,第三个参数指定基数
printf("十进制 %d 转换为八进制为 %s\n", decimal, octal);
}
int main() {
int number = 123;
dec_to_oct(number);
return 0;
}
```
如果你不希望依赖库函数,也可以通过循环和位运算手动实现转换:
```c
void decimalToOctal(int decimal) {
char octal[10];
int i = 0;
while (decimal > 0) {
octal[i++] = decimal % 8 + '0'; // 取余数并加数字0-7对应的ASCII字符
decimal /= 8; // 整除8
}
if (i > 0) {
octal[--i] = '\0'; // 最高位前添加空格
} else {
octal[0] = '0'; // 如果原数为0,也表示为0
}
printf("十进制 %d 转换为八进制为 %s\n", decimal, octal);
}
int main() {
int number = 123;
decimalToOctal(number);
return 0;
}
```
阅读全文