Question

Est-il possible d'ajouter deux nombres signés 8 bits ensemble et définir à la fois les bits de retenue et de débordement?

Était-ce utile?

La solution

Selon vos commentaires, votre question semble être « est-il possible d'avoir à la fois transporter et de trop-plein pour deux ajouter le complément impliquant nombre signé? » Il est. La mise en œuvre typique est de prendre le OU exclusif du report pour la dernière addition avec le report à la fin de la chaîne - donc, un ajout débordement des nombres négatifs entraînera le bit de report à régler et le bit de débordement à définir.

Voici un exemple, ajouter -1 à -128:

Carry 10000 0000 
       1000 0000  (-128)
       1111 1111  (-1)
       ---------
       0111 1111 (oops, this is 127!)

Carry sera définie, depuis le dernier ajout a donné lieu à un report - et trop-plein sera défini en fonction de la règle ci-dessus (également noter que -128 ajouté à -1 est évidemment pas 127)

Autres conseils

Vous n'avez pas accès aux drapeaux en C, même si vous pouvez obtenir le compilateur pour générer le code qui les a, vous devez avoir aucun moyen de les utiliser.

Vous pouvez écrire votre propre routine ajouter en C qui renverra les drapeaux de transport et trop-plein pour signé opérandes 8 bits. Si vous faites référence au transport du matériel et des bits de débordement à l'intérieur le processeur, non, qui ne peut se faire de façon portable en C.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top