int DiffBit (TString& str1, TString& str2) { size_t minimum = min(str1.GetSize(), str2.GetSize()) + 1; for (int i = 0; i < minimum; i++) { if(str1[i] != str2[i]) minimum = i; } char x = str1[minimum] ^ str2[minimum]; int ans = minimum << 3; if((x & 15) == 0) { x >>= 4; ans += 4; }
int GetBit (TString& string, int n){ if(n == -1) { return 0; } if (n >= (string.GetSize() << 3)) { //*8 return 0; } return string[n >> 3] & (1 << (n & 7)) ? 1 : 0; }