countbits

count leading 0 bits in hex strings
git clone git://jb55.com/countbits
Log | Files | Refs | README

proof.h (392B)


      1 static inline int zero_bits(unsigned char b)
      2 {
      3 	int n = 0;
      4 
      5 	if (b == 0)
      6 		return 8;
      7 
      8 	while (b >>= 1)
      9 		n++;
     10 
     11 	return 7-n;
     12 }
     13 
     14 /* find the number of leading zero bits in a hash */
     15 static int count_leading_zero_bits(unsigned char *hash)
     16 {
     17 	int bits, total, i;
     18 
     19 	for (i = 0, total = 0; i < 32; i++) {
     20 		bits = zero_bits(hash[i]);
     21 		total += bits;
     22 		if (bits != 8)
     23 			break;
     24 	}
     25 	return total;
     26 }