Не мой день сегодня. Что ни спрошу, тут же ответ нахожу
Код:
// LRC - это обычный побитный XOR
char lrc(const char* begin, const char* end)
{
char result = char();
for(; begin!=end; ++begin) result ^=*begin;
return result;
}
// VRC - это обычный междубитный XOR
bool vrc(char ch)
{
char result = char();
for (; ch!=char(); ch>>=1) {result^=ch;}
return result & 1;
}