Como as operações decimais são calculadas?

3

Eu entendo que a CPU regular faz aritmética para tipos de números inteiros (por exemplo, inteiros), bem como operações bit a bit; a FPU faz aritmética de ponto flutuante. No entanto, estou tentando aprender como / onde faz a aritmética para tipos de dados Decimal ( example para c # ) ocorre dentro de um processador típico?

    
por ColdSolstice 25.01.2018 / 04:46

2 respostas

0

Esta é uma pergunta de implementação ... Você pode obter as informações precisas compilando o código específico para a montagem veja este artigo do StackExchange

Na medida em que não é uma questão de implementação, você pode ver aqui observações sobre a representação interna de que existem três partes no objeto:

  • S = bit de sinal
  • I = inteiro de 96 bits
  • F = Um "fator de escala"

O valor é calculado usando uma fórmula como:

value = ( S * I ) / ( 10 ^ F )

Existem atalhos que podem ser obtidos a partir desses valores que aproveitam as vantagens que a CPU faz facilmente. O compilador / biblioteca provavelmente implementa esses atalhos.

    
por 25.01.2018 / 05:54
0

A aritmética inteira é processada por um dos blocos funcionais básicos da CPU, conhecida como Unidade de lógica aritmética ou ALU.

A ALU pode executar várias adições, subtrações e mutiplicações de números inteiros, bem como operações lógicas em dados.

Só porque esta unidade funciona usando inteiros não significa que você não pode fazer a matemática de ponto flutuante, será apenas mais lento do que um FPU dedicado. Consulte aqui para obter alguns detalhes.

    
por 25.01.2018 / 08:45