Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
看见前面几位前辈,我连死的心也有!!!#include <stdio.h> int b=8; char H[9]; int x=0; int y=0; char B[33]; //数据输入函数 void scan () { scanf ("%[0-9a-fA-F]s", &H); getchar(); scanf ("%d,%d", &x, &y); } //输入数据不足8位处理 void p1 () { int w; for (w=0; ;w++) if (H[w]=='\0') break; for (int j=0; j<8-w; j++) { for (int i=6; i>=0; i--) H[i+1] = H[i]; H[0] = '0'; } H[8] = '\0'; //printf("%s\n", H); } //16进制向2进制转换 void H2B () { char temp; int i; for (i=0; H[i]!='\0' ; i++) { temp = H[i]; switch (temp) { case '0': B[i*4+0]='0';B[i*4+1]='0';B[i*4+2]='0';B[i*4+3]='0'; break; case '1': B[i*4+0]='0';B[i*4+1]='0';B[i*4+2]='0';B[i*4+3]='1'; break; case '2': B[i*4+0]='0';B[i*4+1]='0';B[i*4+2]='1';B[i*4+3]='0'; break; case '3': B[i*4+0]='0';B[i*4+1]='0';B[i*4+2]='1';B[i*4+3]='1'; break; case '4': B[i*4+0]='0';B[i*4+1]='1';B[i*4+2]='0';B[i*4+3]='0'; break; case '5': B[i*4+0]='0';B[i*4+1]='1';B[i*4+2]='0';B[i*4+3]='1'; break; case '6': B[i*4+0]='0';B[i*4+1]='1';B[i*4+2]='1';B[i*4+3]='0'; break; case '7': B[i*4+0]='0';B[i*4+1]='1';B[i*4+2]='1';B[i*4+3]='1'; break; case '8': B[i*4+0]='1';B[i*4+1]='0';B[i*4+2]='0';B[i*4+3]='0'; break; case '9': B[i*4+0]='1';B[i*4+1]='0';B[i*4+2]='0';B[i*4+3]='1'; break; case 'A': case 'a': B[i*4+0]='1';B[i*4+1]='0';B[i*4+2]='1';B[i*4+3]='0'; break; case 'B': case 'b': B[i*4+0]='1';B[i*4+1]='0';B[i*4+2]='1';B[i*4+3]='1'; break; case 'C': case 'c': B[i*4+0]='1';B[i*4+1]='1';B[i*4+2]='0';B[i*4+3]='0'; break; case 'D': case 'd': B[i*4+0]='1';B[i*4+1]='1';B[i*4+2]='0';B[i*4+3]='1'; break; case 'E': case 'e': B[i*4+0]='1';B[i*4+1]='1';B[i*4+2]='1';B[i*4+3]='0'; break; case 'F': case 'f': B[i*4+0]='1';B[i*4+1]='1';B[i*4+2]='1';B[i*4+3]='1'; break; default : printf("error\n"); } } B[i*4] = '\0'; } //X,Y置换 void trans () { B[31-x] = '0'; B[31-y] = '1'; B[31-y+1] = '1'; B[31-y+2] = '0'; } //2进制向16进制转换 void B2H () { int temp; int i; for (i=0; B[i]!='\0'; i+=4) { H[i/4] = '0'; for (int j=0,k=8; j<4; j++,k=k/2) { if (B[i+j] == '1') H[i/4] = H[i/4] + k; } if (H[i/4] > '9') H[i/4] = H[i/4] + 'a' - '9' - 1; } H[i/4] = '\0'; } //输出数据规格化 void p2 () { for (int i=0; i<7&&H[0]=='0'; i++) for (int j=0; j<8; j++) H[j] = H[j+1]; } //数据输出 void print () { //printf("%s\n", B); //printf("%x\n", x); //printf("%d\n", y); printf("%s\n", H); } //主函数 void main () { scan(); p1(); H2B(); trans(); B2H(); p2(); print(); } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator