Побитовые операции си
Есть код, который шифрует числа, путём перестановки первого и последнего бита в байте. Как сделать обратное действие?
unsigned int n = abs(atoi(arr[i]));
//Замена бита
if (n && ((n & 1) == 0))
{
unsigned int i = -1;
for (unsigned int m = n; m; m >>= 1, i++);
n = (n & ~(1 << i)) | 1;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Вот как поменять местами первый и последний биты байта:
unsigned char rv(unsigned char n)
{
return (n<<7)|(n>>7)|(n&0x7E);
}
Только очень уж убогое шифрование получается :) - https://ideone.com/wTKWSg