Example #1
0
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;
    }
Example #2
0
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;
}