Решить выражение

133
22 апреля 2022, 12:50

Вычисление выражений с использованием побитовых операций. Задано целые числа a, b, c и d. Вычислить выражение без использования операций умножения и деления (заменив на их операций оползней) Только начал изучать, помогите с ошибками.


#include <iostream>
#include <clocale>
using namespace std;
int main()
{
    cout << "Enter number";
    int a, c, b, d, x, x1 , x2, x3 ; 
    cin >> a, b, c, d;
    x1 = a << 17 + d << 6 + c << 6 >> 32;
    x2 = b << 1280 + d << 63 - c << 9;
        x = x1 - x2;
        cout << x; 
        endl;
    return 0;
}
Answer 1

Да все просто - ну вот что такое a*34? Это просто a*32 + a*2 = a *25 + a*21- итого,

(a<<5)+(a<<1)

d*127 = d*128 - d = d*27 - d, так что

(d<<7)-d

Дальше понятно? Сдвиг ("оползень", как вы его назвали...) влево на N бит - это умножение на 2N, вправо - деление...

И еще - не забывайте, что у операций сдвига приоритет ниже, чем у плюсов и минусов...

READ ALSO
Двойная задержка выполнения скрипта

Двойная задержка выполнения скрипта

Есть такой скрипт, на ардуино (крутит шаговый двигатель)Подскажите как сделать так чтобы этот скрипт выполнялся 10 секунд, потом была задержка...

121
удалить символы из определенного интервала строки и вставки на их место другую строку С++

удалить символы из определенного интервала строки и вставки на их место другую строку С++

помогите с задачей, очень прошу! готов и очень хочу разбираться

206
Проблема с boolean-ом в C++

Проблема с boolean-ом в C++

Почему этот boolean может запуститься без SDL_Event event, когда должен только с SDL_Event event?

127