/* ** add - binary addition table generation program ** written by Joseph B. Evans, 11/11/91 */ #include #include #define MAXRAND 2147483647. /* maximum random number for random() */ #define LIMIT 0.001 /* limits on uniform distribution */ main(ac,av) int ac; char **av; { int x,y,ci,z; int xbits,ybits,zbits; int cflag = 0; double u; if (ac == 2) cflag = 1; else if (ac > 2) { fprintf(stderr,"usage: %s [-c]\n",av[0]); fprintf(stderr," -c gives a carry in\n"); } xbits = 8; ybits = 8; zbits = 9; for (ci=0; ci <= cflag; ci++) { for (x=0; x < (1< 0.5-LIMIT)&&(u < 0.5+LIMIT)) { z = x+y+ci; printf("b"); print_binary(x,xbits); printf(" b"); print_binary(y,ybits); if (cflag == 1) { printf(" b"); print_binary(ci,1); } printf("\tb"); print_binary(z,zbits); printf("\n"); } } } } }