2016-04-17 1 views
0

Je suis un étudiant en informatique de première année donc pardonnez mon manque de compréhension du domaine.Y at-il un moyen facile d'implémenter l'arithmétique binaire w/o 2 compliment?

Nous avons d'abord appris à faire à la main arithmétique simple binaire

1) comment faire plus avec binaire

2) comment faire la soustraction avec binaire

Cependant, même le programmeur inexpérimenté dans Je savais que les méthodes que nous avons apprises étaient très difficiles à traduire en code informatique algorithmique example (mais peut-être que c'est juste moi)

Nous avons ensuite appris à propos de 2 compliment, ce qui a rendu la vie un peu facile ier (ex. les nombres négatifs sont désormais faciles à mettre en œuvre et la soustraction est désormais d'ajouter des nombres négatifs)

Mais ce que je veux savoir est s'il y avait un moyen avec le compliment/o 2 à faire tout (multiplication/division/addition/soustraction). Ou était-ce le but même du compliment de 2 et je suis tout à fait gauche champ amuser une idée qui est complètement inutile et que personne ne se soucie sur in cs?

+0

Je me demande comment convertir un nombre positif en complément de 2 quand il ne rentre pas dans les bits. Par exemple. pour une machine 16 bits comment vous calculez 65535-65534? – user3528438

+0

@ user3528438 Une machine 16 bits peut facilement fonctionner avec des nombres 192 bits si vous le souhaitez - l'additionneur est également * * construit à partir d'une séquence de pièces répétées, vous pouvez faire la même chose dans le logiciel. Fondamentalement, vous "fil" les deux ensemble tout en manipulant le carry/emprunter correctement et vous pouvez étendre la largeur effective de l'additionneur autant que vous le souhaitez. Les machines 8 bits traitaient des nombres de 16 bits tout le temps - ce n'est pas comme si les nombres de 8 bits étaient très utiles. – Luaan

Répondre

0

Le complément 2 fonctionne très bien. Que voudriez-vous améliorer exactement? Il peut traiter des nombres arbitrairement grands, et utilise seulement une chaîne d'unités de traitement très simples pour faire son travail.

La principale exception concerne les nombres à virgule flottante qui n'utilisent pas le complément à 2. Je suis sûr que vous apprendrez bientôt sur IEEE-754, c'est très amusant :)

Enfin, noöne vous oblige à utiliser le complément 2. Vous pouvez faire ce que vous voulez, c'est juste que 2 est bon et bon marché. Vous pouvez faire en sorte que votre logiciel calcule tout en chiffres romains si vous le désirez. Mais ça ne va pas être très rapide.