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

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

PROGamer

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

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

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

Помогите ктонить...
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab