/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * U T I L I T I E S * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #include #include #include #include #include "include/utilities.h" int convertToBits(BYTE *x, int xBitLength, int bitsNeeded, int *num_0s, int *num_1s, int *bitsRead, BitSequence* epsilon) { int i, j, count, bit; BYTE mask; int zeros, ones; count = 0; zeros = ones = 0; for ( i=0; i<(xBitLength+7)/8; i++ ) { mask = 0x80; for ( j=0; j<8; j++ ) { if ( *(x+i) & mask ) { bit = 1; (*num_1s)++; ones++; } else { bit = 0; (*num_0s)++; zeros++; } mask >>= 1; epsilon[*bitsRead] = bit; (*bitsRead)++; if ( *bitsRead == bitsNeeded ) return 1; if ( ++count == xBitLength ) return 0; } } return 0; }