c程序的一道入门题

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:13:56
编程实现10进制转化成2、8、16进制。例:输入:12,输出:二进制为1100
八进制为014
十六进制为0xc
提示:先做10进制转2进制的,运行通过后再扩展成能转8、16进制,当然8、16进制不能使用printf()函数中的%o、%x实现

咋个是利用atoi函数是实现的,不是使用printf函数实现
只是用字符串存放结果而已!

#include <stdio.h>
#include <stdlib.h>
int main()
{
int temp;
char bin[100];
char oct[100];
char hex[100];
printf("输入");
scanf("%d",&temp);
itoa(temp,bin,2);
itoa(temp,oct,8);
itoa(temp,hex,16);
printf("二进制:%s\t八进制:0%s\t十六进制:0x%s\n",bin,oct,hex);

return 0;
}

char *DecToHex(char *hex, unsigned int dec)
hex 存放转换得到的十六进制数
dec 需要转换的十进制数
{
char ch, *left=hex, *right=hex;
do
{
if ((ch=dec%16)<10) *right++ = ch+'0';
else *right++ = ch+55;
}while ((dec>>=4) != 0);
*right-- = '\0';
while (left<right)
{
ch = *left;
*left++ = *right;
*right-- = ch;
}
return hex;
}

相信其他的几个是比这个简单的