У меня есть две шестнадцатеричные строки:
string x = "928fe46f228555621c7f42f3664530f9";
string y = "56cd8c4852cf24b1182300df2448743a";
Я пытаюсь преобразовать их в двоичные файлы, чтобы узнать, сколько битов совпадает между двумя шестнадцатеричными строками.
Я использовал эту функцию для преобразования HEX в двоичный:
string GetBinaryStringFromHexString (string sHex)
{
string sReturn = "";
for (int i = 0; i < sHex.length (); ++i)
{
switch (sHex [i])
{
case '0': sReturn.append ("0000"); break;
case '1': sReturn.append ("0001"); break;
case '2': sReturn.append ("0010"); break;
case '3': sReturn.append ("0011"); break;
case '4': sReturn.append ("0100"); break;
case '5': sReturn.append ("0101"); break;
case '6': sReturn.append ("0110"); break;
case '7': sReturn.append ("0111"); break;
case '8': sReturn.append ("1000"); break;
case '9': sReturn.append ("1001"); break;
case 'a': sReturn.append ("1010"); break;
case 'b': sReturn.append ("1011"); break;
case 'c': sReturn.append ("1100"); break;
case 'd': sReturn.append ("1101"); break;
case 'e': sReturn.append ("1110"); break;
case 'f': sReturn.append ("1111"); break;
}
}
return sReturn;
}
Итак, строка x в двоичном формате равна --> 10010010100011111110010001101111001000101000010101010101011000100001110001111111011111101000010111100110110011010101001010011010011
и строка y в двоичном формате --> 01010110110011011000110001001000010100101100111100100100101100010001100000100011000000001000110000000011011111100100100010101001001010010010
Но теперь я застрял, как я могу выполнить операцию xor для двух строк, чтобы найти количество совпадающих битов? и как мне их посчитать?
Неважно, использую ли я Java или C++, кто-нибудь может помочь.
Спасибо,
int
, а затем попробовать то же самое с типомstring
. - person Jason   schedule 10.10.2014