Binärzahlen subtraktion?

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



TechPech1984  26.10.2022, 20:34

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 .

0