16 #define MAX_NUMS  ((INT_MAX >> 5) + 1)   
   26 int main(
int argc, 
char** argv)
 
   28    const char* usage = 
"usage: %s filename\n";
 
   32    static unsigned int have_num[
MAX_NUMS];
 
   40    assert(
sizeof(
int) == 4);
 
   46       fprintf(stderr, usage, argv[0]);
 
   50    memset(have_num, 0, 
sizeof(have_num)); 
 
   54    if (NULL == (fp = fopen(argv[1], 
"r")))
 
   62    while(fread(&n, 
sizeof(n), 1, fp))
 
   71          unsigned int msk = 1 << (n & 31);  
 
   84    fprintf(stderr, 
"Total numbers read = %d\n", total_nums);
 
   88          for(
int k = 0; k < 31; k++)
 
   89             if (have_num[i] & (1 << k))
 
   90                printf(
"%d\n", (i << 5) + k);
 
int main(int argc, char **argv)
Program to read a file with binary positive 32 bit integers, sort the numbers and print them sorted...
#define MAX_NUMS
Maximum number of 32 bit ints we need to store bits.