Question

Je travaille sur mon HW pour l'architecture informatique et je suis tombé sur le problème suivant:

  

A = 247
  B = 237

     

1) Supposons que A et B sont des entiers signés 8 bits stockés dans deux format de complément. Calculer A + B, en utilisant l'arithmétique de saturation. Le résultat doit être écrit en décimal. Montrez votre travail.
  2) On suppose A et B sont signés 8 entiers de bits stockés dans deux format de la compelemnt. Calculer A -. B en utilisant l'arithmétique de saturation

Maintenant, comment sont-ils même des questions valides? Je sais ce que l'arithmétique est saturant, mais comment est-il valide pour dire que A est 247 et B est de 237 quand ils ne peuvent pas être représentés par un numéro deux du complément de 8 bits?

Je me rends compte du point de l'arithmétique saturée est dans le cas d'un dépassement haut / bas pour régler tous les bits à la valeur extrême, mais il ne me fait pas de sens de poser une série de questions (il y a 3 plus avec cette même problème) impliquant arithmétique des chiffres qui ne peuvent pas être représentés dans le format qu'ils précisent.

Ai-je tort ici?

Était-ce utile?

La solution

La seule interprétation qui est logique que les valeurs données sont les non signé interprétation du nombre en question; des valeurs supérieures à 127 sont évidemment hors de portée pour une valeur signée deux par deux, le complément de 8 bits. Je suis d'accord que la question est mal posé, cependant.

Autres conseils

Je ne sais pas, mais peut se demander:. « Convertir le nombre décimal 237 à un nombre entier 8 bits maintenant interpréter ces bits comme un entier complément de 2 à 8 bits et les ajouter ».

Un peu comme dire, en C:

char a = 237;
printf("%x %d\n",a, a);

Ce qui compile et vous donne des valeurs que vous attendriez basé sur l'interprétation du complément de 2 de la valeur 8 bits « 237 »

Attend tort de moi. 8 bits signé deux de les entiers de complément peuvent être entre -128 et 127. Toute tentative d'attribuer un 237 ou 247 à un 8 bits constant signé deux variable d'complément devrait se traduire par une erreur, en fonction de votre langue.

Si le problème était « supposons que A et B sont stockés dans un 8 bits entier signé », il serait logique. Stockage de A = 247 en un entier signé de 8 bits donne une valeur de -9, le stockage B = 237 donne une valeur de -19. Dans le cas contraire, il ne fait pas de sens. A signé 8 nombre entier de bits ne peut pas avoir une valeur de 247 ou 237.

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