111100010101011-> 4= 13202223
111100010101011-> 8= 74253
111100010101011->16= 78AB
------------------------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容,仅在
Program-End之间填入若干语句。不要删除标志否则不得分。
---------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
void change(char bin[],int p,char other[])
{
int len,sec,i,j,k,v;
len=strlen(bin);
sec=(p==4 ? 2:(p==8 ? 3:4));
j=(len%sec ? len%sec : sec);
/**********Program**********/
for(k=i=0;bin[i];)
{
v=0;
while(j--)
v=v*2+bin[i++]-48;
other[k++]=(v>9?v+55:v+48);
j=sec;
}
other[k]=0;
/********** End **********/
}
int main(){
char bin[20]={"111100010101011"},other[10];
int p;
for(p=2;p<=8;)
{
change(bin,p*=2,other);
printf("%s->%2d=%+9s\n",bin,p,other);
}
return 0;
}