Dépassement de capacité arithmétique vs Arithmétique à Effectuer
L'une de mes conférences diapositives donne un exemple de dépassement de capacité arithmétique et de la transporter dans une rubrique pour les branchements conditionnels drapeaux sur un BRAS de la puce, cité ci-dessous:
- V (dépassement de capacité)
- 7FFFFFFF+1 - C (carry)
- FFFFFFFF+1
Sans doute pour le bien de l'exemple, l'adresse ne peut contenir de 8 octets. Donc, pour moi, il semble aime l'ajout de 1 à 7FFFFFFF donne 80000000. J'ai pensé 80000000 s'inscrivent toujours dans une 8 octets de l'adresse.
Pourquoi est-ce un dépassement de capacité arithmétique? Est-il à l'envers sur la diapositive? Ou est ma compréhension erronée?
Merci pour les réponses
Vous débordement d'un entier signé. 0x80000000 est le plus grand possible négative valeur de 64 bits en complément à deux de l'arithmétique (plutôt que d'un 0x7fffffff).
c'est 32 bits 🙂
ouais, je sais. Doit avoir été faible sur la caféine. 🙂
c'est 32 bits 🙂
ouais, je sais. Doit avoir été faible sur la caféine. 🙂
OriginalL'auteur eggonlegs | 2011-06-07
Vous devez vous connecter pour publier un commentaire.
Assez simple et concis. Merci s'accoupler!!
OriginalL'auteur Seth
Vous obtenez un dépassement de capacité, si le bit de signe est endommagé. Donc, vous savez que vous devez ajuster votre résultat.
Vous obtenez un report si le résultat ne correspond pas à cette valeur. (besoin de plus de bits que vous avez).
Dans les vieux jours où vous avez eu à écrire votre propre addition et de la multiplication des sous-routines pour plusieurs valeurs d'octets.
OriginalL'auteur Toon Krijthe