谁能帮帮??怎么将二进制转化为十六进制??我想了半天,就是不知道怎么输入二进制,并进行存储
#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();
}
你可以进行功能扩充,比如说任意进制间的转换,对于任意位数的输入和存储我也想了很长时间,最终采取链表的办法。