У меня есть задача - нужно шифровать строку путем битовых операций(сдвигов).
Есть входная группа из трех символов, биты которых нужно брать и использовать для шифрования путем присваивания их переменной "A" следующим путем:
A =
0 a7
1 b6 c5 a3 b2 c1
Мне нужно убедиться, что логические операторы и шаги сдвига расположены верно.
Вот кусок кода с основной логикой:
int encodeGroup(const string& group)
{
unsigned int A = 0;
if (group.length() < 3) {
return -1;
}
A = (0 | ((group[0] & 0x80) >> 1) | 1 | ((group[1] & 0x70) >> 2) | ((group[2] & 0x60) >> 2) | ((group[0] & 0x40) >> 1) |((group[1] & 0x30) >> 1) | ((group[2] & 0x20) >> 1));
return A;
}