[求助]进制转换问题
char *ReadData(FILE *fp, char *buf)
{
return fgets(buf, LINE, fp);//读取一行到buf
}
其中buf=(char*)malloc(LINE*sizeof(char));
假如某一行为一个32位的二进制数读进了buf,将其转换成16进制数,怎么办
[此贴子已经被作者于2007-8-26 16:48:24编辑过]
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
typedef struct node
{
int n;
struct node *next;
}r,*pr;
char v[]="0123456789ABCDEF";
void main()
{
pr p1=NULL,p2;char vv[10];
int i1,i2,s,j=0;
char c,clrscr();
printf("please input the number:");
while((c=getchar())!='\n')
if(isdigit(c))
{
p2=(pr)malloc(sizeof(r));
p2->n=c-'0';
p2->next=p1;
p1=p2;
}
while(p1)
{
s=0,i1=0,i2=1;
while(i1<4&&p1)
{
s+=i2*(p1->n);
i1++;p1=p1->next;
i2*=2;
}
vv[j++]=v[s];
}
while(j>=0)
{
printf("%c",vv[j--]);
}
getch();
}
请看一下转换程序,得出结果有误