题目:程序将由'0'、'1'字符组成的数字字符串视为二进制数,函数change将其转 换为n(n=4,8,16)进制形式的字符串。 程序运行结果为: 111100010101011-> 4= 13202223 111100010101011-> 8= 74253 111100010101011->16= 78AB ----------------------------------------------------------------------- 注意:除要求填空的位置之外,请勿改动程序中的其他部分。 ---------------------------------------------------------------------*/ #include #include 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)); /**************************SPACE*************************/ j=(len%sec ? 【?】); 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; } int main(){ char bin[20]={"111100010101011"},other[10]; int p; for(p=2;p<=8;) { /**************************SPACE*************************/ change( 【?】); printf("%s->%2d=%+9s\n",bin,p,other); } return 0; }