关于c语言进制转换问题

怎么写下一个程序,有两种功能,可以使十进制数转化为八位二进制数。也可以使八位二进制数转化成一位十进制数

#include<stdio.h>
void main()
{
int a=12345;
printf("a=%o\n",a); //%o表示以八进制输出。反过来10进制用%d
}

10转2,就是用十进制数%2,每次的余数都是一个二进制然后直到取余为1,然后结束