Grundrechenarten mit Dualzahle < Sonstige < Schule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 20:31 Mo 10.02.2014 | Autor: | Mino1337 |
Aufgabe | Berrechne
6+5
6*5
6-5
-6+5
-6-5
-6*5
In Dualzahlen |
Hallo,
Die oben genannten Aufgaben habe ich mir selbst gestellt zur Übung und ich komme beim letzten nicht weiter. Ausserdem wäre es nett wenn jemand meine anderen richtigen Lösungen anschauen könnte um zu veriffizieren ob ein Glückstreffer dabei ist oder ob ich es als "können" abhaken kann =).
6 = 0110
-6= 1010
5 = 0101
-5=1011
6+5 = 11
0110+0101=1011
6*5=30
0110*0101=011110
6-5=1
0110+1011=10001
-6+5=-1
1010+0101=1111
-6-5=-11
1010+1011=0101
-6*5=-30
So hier haperts, ich habe es versucht genauso zu rechnen wie 6*5 nur mit der Zweierkomplementzahl der 6 also -6 in binär und ich habs mit 5 in zweierkomplement versucht was wenn man drüber nachdenkt schwachsinn ist weil 5 in zweierkomplement wäre ja dann -5 oder sehe ich da was nicht ?
Vielen Dank ich denke das wird sich schnell erklären lassen nur hab ich im moment keinen Plan ...
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 21:26 Mo 10.02.2014 | Autor: | leduart |
Hallo
wenn du mit Dualzahlen rechnest, solltest du wirklich mit ihnen rechnen. d,h, zB
110*101
--------
110
000
110
...............
11110
und nicht ins Zehnersystem 6*5=30 übersetzen und dann wieder ins Dualsystem..
warum du mit dem komplement, statt neg zweierzahlen rechbest, weiss ich nicht.
wenn du mit dem Komplement rechnest und sich due Stellenzahl erhöht, fet es schief. mit deiner Darstellung kamnn man nur bis 15 rechnen
Gruß leduart
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 22:32 Mo 10.02.2014 | Autor: | Mino1337 |
Hallo,
Danke das du dich auf meine Frage gemeldet hast.
Ich habe mich wohl missverständlich ausgedrückt, ich habe nicht die Zahlen hin un her übersetzt das ist ja nicht der sinn der sache gewesen ich habe sie nur für die bessere Lesbarkeit übersetzt und drübergeschrieben. Gerechnet habe ich das ganze schriftlich und ja jetzt sehe ich auch den Fehler in meiner Anfangsfrage, man kann wohl schlecht "Zufallstreffer" finden wenn ich den Rechenweg nicht mitposte.
Ich verstehe nicht ganz wie du das meinst. Negative Dualzahlen sind doch das Zweierkomplement ? Oder hab ich mich da vertan ?
Dein Beispiel ist 6*5 ich weiss aber bei -6*5 nicht weiter ...
Kann auch sein das meine Folgefrage mich zum Deppen abstempelt aber könntest du da mehr ins Detail gehen Bitte =) ?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 23:01 Mo 10.02.2014 | Autor: | chrisno |
Du kannst Dir für die Dualzahlen genau so ein Minuszeichen spendieren, wie bei den Dezimalzahlen.
Einmal ist der Vorrat an Ziffern 0, 1 .... 9 und dazu kommt das Vorzeichen.
Bei den Dualzahlen eben 0, 1 und das Vorzeichen.
Dann kannst Du so rechnen, "wie gewohnt".
Im Computer wäre das natürlich unpraktisch, da wird für das Vorzeichen das erste bit genommen. Wie man die Zahlen dann interpretiert, muss vereinbart werden. Das Zweierkomplement ist eine Möglichkeit (steht alles in Wikipedia, ich bin da eher Laie). Falls Du mit dem Zweierkomplement rechnen willst, dann musst Du Dir erst einmal genug bits spendieren. Schreib mal -5 im Zweikomplement mit verschiedenen Anzahlen von bits.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 00:07 Di 11.02.2014 | Autor: | Mino1337 |
Ach jetzt verstehe ich was gemeint war =) ... Danke hierfür, nur leider ist in den Meisten Aufgaben die mich erwarten die frage nach Zweierkomplement-rechnen ... Die Aufgaben sind meist so gestellt ... rechne 4-8*9 im Zweierkomplement ...
Aber Danke für die Tipps evtl. kann ich das auch gebrauchen =) ...
Also gibt es nichts gesondertes zu beachten wenn ich eine Zahl mal eine Minuszahl rechnen will ausser genügend Bits zur verfügung zu haben ?
In dem zusammenhang fällt mir auch noch ne frage ein (wie definiert sich ein Über-Unterlauf) aber da werd ich wohl noch ne runde googlen ...
|
|
|
|
|
Hallo!
ich war grade auch etwas erstaunt, aber ja, man kann mit Binärzahlen im Zweierkomplement genauso multiplizieren, wie man es gewohnt ist.
Das mit dem Überlauf bedeutet, daß das Resultat der Rechnung größer ist, als die Anzahl Bits, die dir zur Verfügung stehen. Bei einem unsigned char (8 bit, ohne Vorzeichen) ergibt 255+1=0 oder binär 11111111+00000001=00000000, weil es kein neuntes Bit gibt. Bei einem signed char ergibt 127+1=-128. Ist die gleiche Rechnung, die Binärzahl wird nur anders interpretiert. Man muß also beachten, ob der Betrag des Resultats noch mit 8 bzw. 7 Bits darstellbar ist. Und Wiki sagt ja auch, es kommt auf dein Rechenwerk an, ob du darüber eine Meldung erhälst, oder nicht.
Ich bin jedenfalls schon häufiger darüber gestolpert, daß ein 32Bit-Integer max. bis 2,7Mrd. geht.
|
|
|
|