【正确答案】正确答案:int j,i=0; char temp; while(n!=0) { des[i]=n%2+'0'; n=n/2; i++; } //转化结果为2进制最高位在des的下标最低处,顺序刚好反了 des[i]=NULL; for(j=0;j<i/2;j++) //将顺序倒过来 { temp=des[j];//交换 des[j]=des[i-1-j]; des[i-1-j]=temp; }
【答案解析】解析:(1)本题为将十进制数转换成二进制数,因此采用除2求余法,通过该方法最终可以将一个十进制数转换成一个只包含1和0的数组。 (2)除2求余法得到的是0和1的数值,不是“0”和“1”字符,还需将数字转化成字符,0和1通过加上“0”的ASCII码便可得到0和1的ASCII码字符。 (3)因为除2求余法得到的字符数组是从低位到高位保存的,因此需要先倒序后再输出,可利用循环方式将顺序调转过来。