【Aritmética de ponto fixo】Multiplicação e adição de números de ponto fixo

contente

Ponto introdutório

vantagem de ponto fixo

Multiplicação e adição de números de ponto fixo

multiplicação

Adição


Ponto introdutório

Os números de ponto fixo e de ponto flutuante foram introduzidos em blogs anteriores. Se você quiser saber mais, pode acessar os seguintes links:

[Ponto fixo e ponto flutuante] Explicação dos números de ponto fixo e de ponto flutuante

vantagem de ponto fixo

Quais são as vantagens de usar uma representação de ponto fixo? Por que não simplesmente normalizar todos os valores para o intervalo de inteiros e lidar com inteiros. Normalize todos os valores para inteiros, o que produz código e documentação muito ilegíveis. O ponto fixo geralmente é mais conveniente ao analisar algum código. Por exemplo, se eu estiver olhando para o código-fonte assim:

c0 = fixbv(0.0032, min=-1, max=1, res=2**-15)
c1 = fixbv(-0.012, min=-1, max=1, res=2**-15)

É fácil relacionar isso com os coeficientes do filtro, mas se você vir apenas números inteiros:

c0 = intbv(0x0069, min=-2**15, max=2**15)
c1 = intbv(-0x0189, min=-2**15, max=2**15)

Precisa ver outras informações. Os inteiros sozinhos dificultam a compreensão do que esses valores pretendem representar.

Além das vantagens de apresentação, também é comum em dados de ponto fixo quando usados ​​para lidar com situações de arredondamento e estouro.

Multiplicação e adição de números de ponto fixo

A operação de multiplicação de números de ponto fixo e a multiplicação de números decimais comuns podem ser usadas de maneira muito semelhante - cálculo de coluna; o mesmo vale para a adição de números de ponto fixo.

multiplicação

Ao calcular a multiplicação de números de ponto fixo, desde que o valor numérico seja convertido em binário, a existência do ponto decimal pode ser temporariamente ignorada, pois, como mencionado anteriormente, a razão pela qual um número de ponto fixo é chamado de ponto fixo número do ponto é porque sua posição do ponto decimal é fixa, portanto, você pode primeiro fazer o cálculo e depois determinar a posição do ponto decimal.

O seguinte é um exemplo, tomando dois números como 6,5625 (um total de 8 dígitos, incluindo 3 partes inteiras, 4 casas decimais) e 4,25 (um total de 8 dígitos, incluindo 5 partes inteiras, 2 casas decimais) dos dois números Multiplicar .

0110.1001  == 6.5625
000100.01  == 4.25
          01101001  
        x 00010001  
      ------------
          01101001
         00000000 
        00000000  
       00000000  
      01101001    
     00000000      
    00000000
   00000000 
 --------------------
  x000011011111001   ==  0000011011.111001  ==  27.890625
 
 

O número de dígitos necessários para o resultado do produto é a soma dos dígitos dos dois números. Muitas vezes, os resultados da multiplicação e adição são redimensionados e reduzidos em número de bits. Em ponto fixo, isso faz sentido intuitivo porque as casas decimais menores são descartadas, e o valor é arredondado de acordo com os bits descartados. Desta forma, a largura de bits dos dados pode ser reduzida, de modo a obter o efeito de redução da largura de bits.

Adição

A adição é um pouco mais complicada porque o ponto decimal precisa ser alinhado antes de fazer a adição. Use os mesmos valores do exemplo de multiplicação:

0110.1001  == 6.5625
000100.01  == 4.25
            0110.1001  
        + 000100.01  
        -------------
          001010.1101  ==  10.8125

Acho que você gosta

Origin blog.csdn.net/m0_61298445/article/details/123884633
Recomendado
Clasificación