.用一个数组来存放一个16进制数,并将该16进制数转换为二进制后存入该数组中,最后输出。

高手啊高手,帮帮我吧!C#啊

#include<stdio.h>
#include<string.h>
int main
{
char ary[48];
char tmp[10];

int i;
int length;
char ch;

memset(ary,0,sizeof(ary));
memset(tmp,0,sizeof(tmp));
gets(ary);
//memcpy(ary,"1abcde03",sizeof("1abcde03"));
length= strlen(ary);
if(length>8 || length<=0){
return -1;
}
for(i=0;i<length;i++){
ch=ary[i];
switch(ch){
case '0':
memcpy(tmp,"0000",sizeof("0000"));
break;
case '0':
memcpy(tmp,"0000",sizeof("0000"));
break;
case '1':
memcpy(tmp,"0001",sizeof("0001"));
break;
case '2':
memcpy(tmp,"0010",sizeof("0010"));
break;
case '3':
memcpy(tmp,"0011",sizeof("0011"));
break;
case '4':
memcpy(tmp,"0100",sizeof("0100"));
break;
case '5':
memcpy(tmp,"0101",sizeof("0101"));
break;
case '6':
memcpy(tmp,"0110",sizeof("0110"));
break;
case '7':
memcpy(tmp,"0111",sizeof("0111"));
break;
case '8':
memcpy(tmp,"1000",sizeof("1000"));
break;
case '9':
memcpy(tmp,"1001",sizeof("1001"));
break;
case 'b':
case 'B':
memcpy(tmp,"1010",sizeof("1010"));
break;
case 'a':
case 'A':
memcpy(tmp,"1011",sizeof("1011"));
break;
case 'c':
case 'C':
memcpy(tmp,"1100",sizeof("1100"));
break;
case 'd':
case 'D':
memcpy(tmp,"1101",sizeof("1101"));
break;
case 'e':
case 'E':
memcpy(tmp,"1110",sizeof("1110"));
break;
case 'f':
case 'F':
memcpy(tmp,"1111",sizeof("1111"));
break;
deflaut:
return -1;
break;
}
memcpy(ary[length+i*4],tmp,4);
}
printf("%s\n",&ary[length]);
return 0;
}
温馨提示:答案为网友推荐,仅供参考