como posso aplicar uma fração fixa ao número inteiro

Gostaria de multiplicar para número inteiro com fração modificada da seguinte forma

(Multiplicação pelo somatório de séries de potência com termos negativos)

Eu fiz o que encontrar o método a fração converter em forma de CSD. Mas quero saber como posso me candidatar para multiplicar por número inteiro.

Por exemplo, eu peguei isso

0,46194 = 2 ^ -1 - 2 ^ -5 - 2 ^ -7 + 2 ^ -10.

então eu posso ficar assim como a expressão verilog rtl:

y = (x >> 1) - (x >> 5) - (x >> 7) + (x >> 10);

Mas o problema é que, e se eu receber o valor de entrada for 3, como posso calcular o código acima?

y = (3 >> 1) - (3 >> 5) - (3 >> 7) + (3 >> 10);

Mas como eu sei, é impossível calcular. porque 3 >> 1 é 1, (3 >> 5) é 0, (3 >> 7) é 0, (3 >> 10) é 0;

Portanto, não consigo o resultado normal. Também o motivo de encontrar a expressão da fração modificada desapareceu. O ponto de interrogação desta postagem é "como posso aplicar a fração modificada ao número inteiro".

ATUALIZAÇÃO: Isso deve ser assim. y = ((3 << 1024) >> 1) - ((3 << 1024) >> 5) - ((3 << 1024) >> 7) + ((3 << 1024) >> 10);

questionAnswers(1)

yourAnswerToTheQuestion