编写一个C语言程序,将十六进制数字转换为八进制数字。
时间: 2023-02-22 16:43:38 浏览: 210
以下是一个简单的C语言程序,实现将十六进制数字转换为八进制数字:
```
#include <stdio.h>
#include <math.h>
int main()
{
int hex_num, dec_num = 0, base = 1, rem;
int oct_num = 0, i = 0;
printf("请输入十六进制数字:");
scanf("%x", &hex_num);
/* 将十六进制转换为十进制 */
while (hex_num != 0)
{
rem = hex_num % 10;
dec_num = dec_num + rem * base;
hex_num = hex_num / 10;
base = base * 16;
}
/* 将十进制转换为八进制 */
while (dec_num != 0)
{
rem = dec_num % 8;
oct_num = oct_num + rem * pow(10, i);
dec_num = dec_num / 8;
i++;
}
printf("八进制数字为:%d\n", oct_num);
return 0;
}
```
这段程序首先使用`scanf`函数读取十六进制数字,并使用循环将其转换为十进制数字。然后再使用循环将十进制数字转换为八进制数字。最后,使用`printf`函数输出八进制数字。
阅读全文