Comment les opérations décimales sont-elles calculées?

3

Je comprends que la CPU normale effectue des calculs arithmétiques pour les types de nombres entiers (par exemple, les entiers) ainsi que pour les opérations au niveau des bits; la FPU utilise l'arithmétique en virgule flottante. Cependant, j'essaie d'apprendre comment et où l'arithmétique des types de données décimaux ( exemple pour c # ) se produisent dans un processeur typique?

ColdSolstice
la source

Réponses:

0

Ceci est une question d'implémentation ... Vous pouvez obtenir les informations précises en compilant le code spécifique à l'assembly voir cet article StackExchange

Dans la mesure où il ne s'agit pas d'une question de mise en œuvre, vous pouvez voir à partir d'ici. remarques sur la représentation interne qu'il y a trois parties à l'objet:

  • S = bit de signe
  • I = entier 96 bits
  • F = A "facteur d'échelle"

La valeur est calculée à l'aide d'une formule telle que:

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

Certains raccourcis peuvent être empruntés à ces valeurs pour tirer parti des avantages du processeur. Le compilateur / bibliothèque implémente probablement ces raccourcis.

Slartibartfast
la source
0

L’arithmétique des nombres entiers est traitée par l’un des blocs fonctionnels de base de la CPU, appelé Unité arithmétique et logique ou ALU.

L'ALU peut effectuer diverses additions, soustractions et multiplications d'entiers, ainsi que des opérations logiques sur les données.

Le fait que cette unité fonctionne avec des entiers ne signifie pas que vous ne pouvez pas faire de calcul en virgule flottante, il sera simplement plus lent qu’un FPU dédié. Voir ici pour quelques détails.

Mokubai
la source