C++ побитовый сдвиг

  • Автор темы PROGamer
  • Дата начала
P

PROGamer

Гость
#1
Мне задали написать прогу каторая инвертирует n розрядов в целом числе x начиная с позиции p. Я попробывал так:
Код:

y = x ^ ((-1 >> (sizeof(x) - p+n)) & (-1 << p));

Но пачемуто выводит неправильно. Кто нибудь пожалуйста обьясните мне что я сделал нетак.
 
P

PROGamer

Гость
#2
Полный текст задания такой:
Написать функцию, каторая возвращает число полученное из целого числа X, в катором инвертированы n розрядов, начиная з позиции P, а остальные розряды оставлены без изменений(крайний правый бит считать нулевым за номером).

Помогите ктонить...