wie kann ich einen festen Bruch auf die ganze Zahl @ anwende

Ich möchte mit einem modifizierten Bruch wie folgt auf eine ganze Zahl multiplizieren:

(Multiplikation durch Potenzreihensummierung mit negativen Termen)

Ich habe getan, um die Methode zu finden, die den Bruch in die CSD-Form umwandelt. Aber ich möchte wissen, wie ich das Multiplizieren auf eine Ganzzahl anwenden kann.

Zum Beispiel habe ich diese

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

then kann ich wie folgt als verilog rtl Ausdruck bekommen:

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

Aber das Problem ist, dass wenn der Eingabewert 3 ist, wie kann ich dann den obigen Code berechnen?

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

Aber wie ich weiß, es ist unmöglich zu berechnen. weil 3 >> 1 1 ist, (3 >> 5) 0 ist, (3 >> 7) 0 ist, (3 >> 10) 0 ist;

So kann ich nicht das normale Ergebnis erhalten. Auch der Grund für das Auffinden des modifizierten Fraktionsausdrucks ist verschwunden. Dann lautet die Frage dieses Beitrags: "Wie kann ich den geänderten Bruch auf die Ganzzahl anwenden?".

UPDATE: Das sollte so sein. y = ((3 << 1024) >> 1) - ((3 << 1024) >> 5) - ((3 << 1024) >> 7) + ((3 << 1024) >> 10);

Antworten auf die Frage(2)

Ihre Antwort auf die Frage