Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » C++ » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen C++
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
ex
unregistriert
C++ Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Hallo leute ich habe gerade probleme bei einer Aufgabe:

Ich habe leider noch keine Ansätze.

Implementieren sie einen Code Ausschnitt mit einfacher EIn und Ausgabe mit dem sie die Multiplikation zweier Dualzahlen durchführen können, wenn ihr Prozessor nur addieren und schieben kann , nicht aber multiplizieren.

Für tipps wäre ich dankbar.

Meine Ideen:
keine
09.05.2013 12:13
ex
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Diese Zahl soll ich dabei ausrechnen:

0101*10111
09.05.2013 12:15
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Erst mal überlegen, wie die Multiplikation mit Stift und Papier funktioniert:
code:
1:
2:
3:
4:
5:
6:
7:
8:
0101*10111
  0101
   0000
    0101
     0101
+     0101
----------
  01110011

Die einzige Multiplikation die bleibt, ist die mit der 1 und 0, bei beiden kann mal das Ergebnis sagen, ohne rechnen zu müssen.
Erkennst du ein Muster?

__________________
Syntax Highlighting fürs Board (Link)
09.05.2013 13:36 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
C++
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

1*1 = 1

und 1*0 = 0

Wenn ich das im code schreiben soll mit addition ,soll ich einfach die if beding so schreiben ?

In worten irgendie so:

Wenn zwei gleiche Zahlen addiert werden , soll sich die Zahl nicht ändern , bei unterschiedlich zahlen schon?

Wäre die denkweise irgendwie richtig?
09.05.2013 14:30
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Die erste Zahl (0101) bleibt als ganzes.
Die zweite wird bitweise untersucht:
das Ergebnis (zu Beginn=0) immer um eins shiften
wenn die zweite Zahl am betrachteten Bit eine 1 hat, 0101 auf das Ergebnis addieren.

Also
erg=00000000
erg shiften -> bleibt 00000000
erstes Bit der 2. Zahl betrachten
ist eine 1, also erg+=0101, somit erg= 00000101

shiften -> erg=00001010
zweites Bit der zweiten Zahl ist 0, also nicht addieren

shiften
addieren da 1
...

__________________
Syntax Highlighting fürs Board (Link)
09.05.2013 14:39 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
ex
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

#include <iostream>

using namespace std;

int main()
{
int a = 0101;
int b = 10111;
int summe;

int i = 0;

for(int i = 0; i > 0; i++){





}


}

Ich bin ganz ehrlich ,ich habe probleme deine idee zu verstehen.

Ich habe mal mein code soweit gepostet .

JEtzt wollte ich irgendwie eine if bedingung erstellen in der for schleife , habe aber keine idee wie.
09.05.2013 14:45
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

So kannst du a und b aber nicht eingeben, das sind ja Binärzahlen, der Compiler interprtiert sie aber dezimal.

Nochmal zurück zur Multilpikation mit Stift und Papier:
Ich habe das mal so gelernt, dass man die 2. Zahl (10111) Ziffer für Ziffer durchgeht, mit der ersten Zahl "multipliziert" (binär heißt das, die 1. Zahl abzuschreiben, oder eine 0 hinzuschreiben) und das Ergebnis dann unter die entsprechende Ziffer der 2. Zahl schreibt. Genau diesen Algorithmus würde ich in Code fassen.

__________________
Syntax Highlighting fürs Board (Link)
09.05.2013 14:57 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » C++