#include <stdio.h> #include <fcntl.h> #include <string.h> #include <errno.h> #include <stdlib.h> main (int argc, char *argv[]) { union swapspace { float r4; char b1[4]; }; union assignspace { float r4; unsigned char b1[4]; } val; union swapspace pixel; char hold; long int total_bytes; long int i; float max,min; long int blank, good, miss; good = 0; blank = 0; miss = 0; max = 0.0; min = 1000.0; total_bytes = 1022 * 1024; val.b1[0] = 0xFB; val.b1[1] = 0xFF; val.b1[2] = 0x7F; val.b1[3] = 0xFF; for (i=0; i<total_bytes; i++) { fread((void *)&(pixel.r4),4,1,stdin); hold = pixel.b1[0]; pixel.b1[0] = pixel.b1[3]; pixel.b1[3] = hold; hold = pixel.b1[1]; pixel.b1[1] = pixel.b1[2]; pixel.b1[2] = hold; if (pixel.r4 == val.r4) { miss++; } else if (pixel.r4 < 1.0e-06) { blank++; } else { good++; max = (pixel.r4 > max)? pixel.r4 : max; min = (pixel.r4 < min)? pixel.r4 : min; } } fprintf (stdout,"%10d bad pixels\n",blank); fprintf (stdout,"%10d good pixels\n",good); fprintf (stdout,"%10d missing pixels\n",miss); fprintf (stdout,"Max = %8.5e Min = %8.5e\n",max,min); exit(0); }