J'ai des devoirs d'affectation avec une pièce pour calculer la négation binaire de la valeur entière. Il dit 512 aller dans -513. P>
J'ai une solution qui fait est-ce correct? P> x = 512 y = 512 * (- 1) + (- 1) code>. p>
3 Réponses :
Cette propriété est basée sur la manière dont le nombre négatif est représenté dans le complément de deux. Pour représenter un nombre négatif $ A $ sur n em> bits, on utilise le complément de | a em> | à 2 n em> sup>, c'est-à-dire le numéro 2 n em> sup> - | a em> | p>
Il est facile de voir que a em> + ~ a em> = 111 ... 11 Comme les bits en ajoutant seront toujours 0 et 1 et 111 ... 111 est le nombre juste avant 2 n em> sup> ou 2 n em> sup> -1. p>
As - | a em> | est codé par 2 n em> sup> - | a em> |, et a em> + ~ a em> = 2 n em> sup> -1, on peut dire que - a em> = ~ a em> +1 ou équivalent ~ Un em> = - a em> -1 p>
Ceci est vrai pour tout nombre, positif ou négatif. Et ~ 512 = -512-1 = -513 P>
Je pense que vous devez d'abord nier et ajouter 1. par conséquent p>
y = -(512+1) print (y)