最近研究C语言,发现用多了C#语言这么一个简单的进制转换问题搞了我很多时间。
进制转换其实很简单,在输出时用d或u一类的字符转换就ok了啊,这不废话嘛,我现在需要用函数,且用指针来实现转换void dec_to_hex(int dec,char *p)。废话不说了,直接上代码吧
#include "stdio.h"
void dec_to_hex(int dec,char *p)
{
int i=0;
while(dec>0)
{
if(dec%16<10)
*p=dec%16+'0';
else
*p=dec%16+'A'-10;
dec=dec/16;
i++;
p++;
}
*p='/0';
while(i>=0)
{
printf("%c",*(p-1));
i--;
p--;
}
printf("/n");
}
void main()
{
int i=0;
char hex[100];
printf("input a dec number:");
scanf("%d",&i);
dec_to_hex(i,hex);
}
当然可能方法未必就一定是写的很好的方法,也许还有更好的,但是我只想出了这个,不过把方法中的16换成其他数字,就可以实现其他进制向十进制的转换,嘿嘿,写出个程序心情那是刚刚的……
欢迎大家排砖!!!也希望有更好的朋友能把代码告诉我!先谢了。