#include #include #define ROL(n) ((n<<1) | ((n>>31) & 1)) long calc_id(char *fname) { long calc; int i; char buffer[13]; for (i=0; *fname!='\0' && i<12; i++) buffer[i]=toupper(*(fname++)); while(i<13) buffer[i++]=0; calc=0; for(i=0;buffer[i]!=0;i+=4) calc=ROL(calc)+*(long *)(buffer+i); return calc; } void main() { printf("ID = %lX\n",calc_id("B1.DES")); }