2010-09-10 8 views
1

J'ai trouvé quelques exercices où vous combinez les valeurs de complément de n bits 2 de différentes manières et simplifiez la sortie lorsque cela est possible. (Leurs exercices pratiques utilisent 16 bits, mais ce n'est pas pertinent).Mixage d'addition et de soustraction avec NOT logique

Par exemple:
!(!x&!y) == x|y
0 & y, negate the output == -1

Je vais avoir aucun problème à appliquer les lois de De Morgan avec les exemples AND, OR et NOT, mais je vais avoir du mal à utiliser pas + et -

Par exemple:
!(!x+y) == x-y
!(y-1) == -y

Comment NE PAS distribuer?

Modifier: répondre aux commentaires: Je me rends compte qu'il s'agit d'un NON bit. Ma question est la suivante: en termes algébriques, comment se répartit-elle selon l'algèbre? Example on Wikipedia

+0

Est-ce que cet opérateur 'NOT' bit-sage ou l'opérateur" bang "? – Aillyn

+0

C'est un peu "NON". – BoltClock

+0

@BoltClock Je suis surpris que personne n'ait édité les '!' Dans les '~' 's. – Neil

Répondre

2

Avec les numéros de complément de 2 lorsque vous les Négation binaire est la même chose que dire le négatif du nombre moins 1, donc !x est équivalent à -x - 1 où x peut être une seule variable ou une expression.

A partir de !(!x+y), bien !x va être -x - 1 donc il est !(-x - 1 + y) qui devient -(-x - 1 + y) - 1 ce qui simplifie à x - y.

Et pour !(y-1), cela devient -(y - 1) - 1 = -y + 1 - 1 = -y.