Упражнение 2.7. Напишите функцию invert(х, р, n), возвращающую значение x с инвертированными n битами, начиная с позиции p (остальные биты не изменяются).
#include <stdio.h>
unsigned invert(unsigned int x, int p, int n);
int main()
{
unsigned int x;
int p, n;
printf("Enter the number:\nx: ");
scanf("%d", &x);
printf("p: ");
scanf("%d", &p);
printf("n: ");
scanf("%d", &n);
printf("%d\n", invert(x, p, n));
return 0;
}
/*invert(x, p, n)*/
unsigned invert(unsigned int x, int p, int n)
{
return x ^ (~(~0<<n)<<(p+1-n));
}
Результат:
Комментариев нет:
Отправить комментарий