Program który wczyta dwie liczby a i b i policzy wynik działania a * 2**b ( a razy 2 do potęgi b)
. Należy użyć operatora przesunięcia binarnego (zamiast wymnażania 2**b).
Czy wie ktoś jak to zrobić?
Program który wczyta dwie liczby a i b i policzy wynik działania a * 2**b ( a razy 2 do potęgi b)
. Należy użyć operatora przesunięcia binarnego (zamiast wymnażania 2**b).
Czy wie ktoś jak to zrobić?
Operator przesunięcia bitowego w C++ to <<
więc główna linia programu to będzie long result = a * (2 << (b - 1))
. Trzeba by jeszcze dopisać warunek dla 0 == b
oraz obsługę błędu dla b < 0
KamilAdam napisał(a):
.... long result = a * (2 << (b - 1))
. Trzeba by jeszcze dopisać warunek dla 0 == b
oraz obsługę błędu dla b < 0
Po kiego tak komplikować?
long result=a*(1<<b);
i po krzyku.
@KamilAdam: i jeszcze obsługa błędu b>=32, bo to jest UB (o ile long ma 32 bity)