Побитовые операции

  • Автор темы Again
  • Дата начала
A

Again

Гость
#1
Задание 1. Составить ф-цию, которая кодирует символ (инвертирует порядок битов в байте). Ф-ция возвращает закодированный символ.

Задание 2. Даны позитивные числа x, n, q. Составить программу, которая инвертирует в х n бит, начиная с позиции q (остальные биты не меняются).
 

lazybiz

Well-Known Member
03.11.2010
1 339
0
#6
Если инвертировать порядок бит:
C++:
char reverse( char c )
{
int		i;
char	v = 0;
for ( i = 0; i < 8; i++ ) {
v |= ((c >> i) & 1) << (7 - i);
}
return v;
}
Если же все-таки инвертировать биты то:
C++:
	byte = ~byte;
или же (равнозначно предыдущему):
C++:
	byte ^= 0xff;