Тут даже без битовых операций можно обойтись, хватит одного сложения.
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)