Умножение путем суммирования степенных рядов с отрицательными членами

Как вычислить мультипликатор с плавающей запятой в Verilog? До сих пор я обычно использую shift << 1024, затем число с плавающей точкой становится целым числом. Затем я делаю некоторые операции, затем >> 1024, чтобы снова получить дробь.

Например, 0,3545 = 2 ^ -2 + 2 ^ -4 + ...

У меня есть вопрос о другом способе, как это. Я не знаю, откуда взялся минус (-):

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

Я только что посмотрел на это у кого-то. но, как вы видите, это представляется так

0,46194 = 2 ^ -2 + 2 ^ -3 + 2 ^ -4 + 2 ^ -6 + 2 ^ -, 7 + 2 ^ -10 + ....

Я не понимаю, как он узнает, что минус используется?

Как мы узнаем, когда минус нужен для этого? Кроме того, как я могу подать заявку на Verilog RTL?

ОБНОВЛЕНИЕ: я понимаю концепцию использования минуса в действии. Но есть ли другой способ уравнения или методологии, что можно сделать, чтобы уменьшить выражение, а умножить на степень 2?

ОБНОВЛЕНИЕ: как мы можем использовать этот метод в Verilog? например, я наклонился 0,46194 = 2 ^ -1 - 2 ^ -5 - 2 ^ -7 + 2 ^ -10. тогда этот код был написан как это в verilog. 0.011101101 = 'hED =' d237. Итак, вопрос в том, как мы можем применить его к заявке в Verilog?

ОБНОВЛЕНИЕ: сэр, пожалуйста, проверьте это? Есть небольшая разница в результате.

0,46194 = 0,011101101. Я просто попробовал вот так0,0111011010.100T10T01= 2 ^ -1 - 2 ^ -4 + 2 ^ -5 - 2 ^ -7 + 2 ^ -9. = 0,462890625

Что-то другое. Что я не прав?

Ответы на вопрос(1)

Ваш ответ на вопрос