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 |
Re:比赛结束了,帖个程序吧,请指点In Reply To:比赛结束了,帖个程序吧,请指点 Posted by:0911300017 at 2010-01-16 12:07:39 > #include <stdio.h> > > char getChar(int v) > { > if (v < 10) > return (char)('0' + v); > else > return (char)('A' + v - 10); > } > int getValue(char c) > { > if (c >= '0' && c <= '9') > return c - '0'; > else if (c >= 'A' && c <= 'Z') > return c - 'A' + 10; > else > return c - 'a' + 10; > } > > char str[100]; > int A[4]; > int B[8]; > > int main() > { > while (scanf("%d,%d,%d,%d", &A[0], &A[1], &A[2], &A[3]) != -1) > { > int i, j, r, exp; > B[0] = A[0]; > B[1] = A[1]; > B[2] = A[2] >> 8; > B[3] = A[2] & 255; > B[4] = A[3] >> 8; > B[5] = A[3] & 255; > r = 0xffff; > for (i = 0; i < 6; i++) > { > r ^= B[i]; > for (j = 0; j < 8; j++) > if (r&1) > r = (r >> 1) ^ 0xa001; > else > r >>= 1; > } > r = (r >> 8) + ((r & 255) << 8); > B[6] = r >> 8; > B[7] = r & 255; > for (i = 0; i < 8; i++) > printf("%c%c", getChar(B[i] >> 4), getChar(B[i] & 15)); > printf("\n"); > scanf("%s",str); > r = 0xffff; > for (i = 0; str[i + 4]; i += 2) > { > int value = (getValue(str[i]) << 4) + getValue(str[i + 1]); > r ^= value; > for (j = 0; j < 8; j++) > if (r & 1) > r = (r >> 1) ^ 0xa001; > else > r >>= 1; > } > r = (r >> 8) + ((r & 255) << 8); > exp = ((getValue(str[i]) * 16 + getValue(str[i + 1])) * 16 + getValue(str[i + 2])) * 16 + getValue(str[i + 3]); > if (r != exp) > { > printf("CRC_ERROR\n"); > } > else > { > for (i = 6; str[i + 4]; i += 8) > { > int k; > unsigned int value = 0; > unsigned int *p; > float *q; > for (k = 0; k < 8; k++) > value = (value << 4) + (unsigned int)(getValue(str[i + k])); > p = &value; > q = (float*)p; > if (i > 6) > printf(","); > printf("%.1lf", (*q)); > } > printf("\n"); > } > } > return 0; > } 莫非是楼教主?膜拜一下`` 我就是float那里不知道怎么转``查了一下那个IEEE标准,看晕了``原来可以这样弄``长见识了 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator