diff --git a/src/c/flip.c b/src/c/flip.c index 3d6bfd0..89ddbf8 100644 --- a/src/c/flip.c +++ b/src/c/flip.c @@ -11,27 +11,15 @@ #include "flip.h" -static int k = 31; +static int k = 30; static int flip_word = 0; -static int flip_pos = 31; +static int flip_pos = 0; int flip(void){ - if (flip_pos == k) { + if (flip_pos == 0) { flip_word = rand(); - flip_pos = 0; + flip_pos = k; } - return (flip_word >> flip_pos++) & 1; + --flip_pos; + return (flip_word >> flip_pos) & 1; } - -// Old implementation scans from lower-to-higher order bits, -// but rand() has poor quality on lower order bits. -// int flip(void){ -// static int k = 31; -// static int flip_word = 0; -// static int flip_pos = 0; -// if (flip_pos == 0) { -// flip_word = rand(); -// flip_pos = k; -// } -// return (flip_word >> --flip_pos) & 1; -// }