void bc_encode(unsigned int id,FILE* out){ int val = id; while (val >= RADIX) { unsigned char byte = val % RADIX; fwrite( &byte, 1, 1, out ); val = val / RADIX - 1; } unsigned char final = val + RADIX; /*printf( "%c, ", final);*/ fwrite( &final, 1, 1, out );}unsigned int bc_decode(FILE* in){ unsigned int v = 0; unsigned char byte = 0; fread( &byte, 1, 1, in ); unsigned int p = 1; while ( byte < RADIX ) { v = v + (byte + 1) * p; p = p * RADIX; fread( &byte, 1, 1, in ); /*printf("%d, ", byte);*/ } v = v + (byte + 1 - RADIX) * p; return v-1;}