code: func (db *DB) BitCount(key []byte, start int, end int) (int64, error) {
  	if err := checkKeySize(key); err != nil {
  		return 0, err
  	}
  
  	key = db.encodeKVKey(key)
  	value, err := db.bucket.Get(key)
  	if err != nil {
  		return 0, err
  	}
  
  	start, end = getRange(start, end, len(value))
  	value = value[start : end+1]
  
  	var n int64
  
  	pos := 0
  	for ; pos+4 <= len(value); pos = pos + 4 {
  		n += int64(numberBitCount(binary.BigEndian.Uint32(value[pos : pos+4])))
  	}
  
  	for ; pos < len(value); pos++ {
  		n += int64(bitsInByte[value[pos]])
  	}
  
  	return n, nil
  }
docs: // BitCount returns the bit count of data.