Binärzahlen subtraktion?
Ich verstehe bei der Aufgabe nicht, warum 107 rauskommt und nicht -149, denn 107 würde ja wieder im Wertebereich: -127,...,128 liegen.
2 Antworten
10010101 (-107) (stimmt nicht, das ist 149 , nur du im kopf machst daraus minus weil du das vorzeichenbit einfach so denkst )
- 00101010 (42)
inv 11010101
+1 11010110
10010101 (-107)
+ 11010110 (2er komplement von 42)
===================================
01101011
========
63 8 21
42
64+32+8+2+1
96+11
= 107
allerdings rechnest du hier mit vorzeichenbit , was sonst eigentlich gar nicht brechnet wird . deswegen kommt nicht das erwartet raus . praktisch würdest du einfach
107 + 42 rechnen und das vorzeichen bit setzen - + - ergibt - , die regel lernt man in der ersten klasse .
es ist also gar nicht -107 was du da rechnest sondern
10010101
128+16+4+1 = 149
wenn du das minus 42 nimmst hast du halt 107
ps , die logikgatter rechnen nur plus , das minus wird halt simuliert durchs 2er komplement und addieren
mach mal wirklich mit vorzeichen bit (was dann 9 bits wären)
-107 | 1 01101011
+
-42 | 1 00101010
=================
1 10010101
und schau dir dann an was du rausbekommst
nämlich
1 10010101 = - 149
sonst hättest du nämlich ein überlauf beim vorzeichen bit , deswegen brauchst du mehr bit
mit 7 bits + 1 bit fürs vorzeichen , kannste nicht -149 darstellen
dafür brauchste 9 bits
Du darfst den Minuend (1. Zahl ) nicht 2K-Invertieren, nur den Subtrahenden (2. Zahl). Wenn 5-2 dezimal rechnest, dann machst du da doch auch 5 + (-2) draus.
10010101 = 149
+11010110 = -42
---------
01101011 = 107
nein sein fehler ist beim denken , das er vorzeichenbits als minus sieht
er denkt nämlich das die erste zahl -107 ist , was sie aber gar nicht ist .
das ist eine interpretation die dann zu einem flaschen ergebnis führt . du hast es ja schon geschrieben , er rechnet ohne vorzeichen 149-42 und nicht -107 + -42
und dann wäre es ganz anders .