Задать вопрос

Как возвести в степень с помощью битовых операций в C++?

Необходимо с помощью битовых операций и сложения/вычитания посчитать выражение
(50*x + y^32). Как это можно сделать? Язык - C++.
  • Вопрос задан
  • 2026 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл разработчик С++
    4 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Тут даже без битовых операций можно обойтись, хватит одного сложения.
x * y - к нулю x раз прибавить y
xy - единицу y раз умножить на x

Можно умножение сделать и битовыми операциями
x * 2n = x << n
y = y0 * 20 + y1 * 21 + ... + yn * 2n,
где yi = 0 или 1
Отсюда
xy = y0 * (x << 20) + y1 * (x << 21) + ... + yn * (x << 2n)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы