H2.2 Anzahl der Bit-Operationen

sensei
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 29. Jun 2004 09:19

H2.2 Anzahl der Bit-Operationen

Beitrag von sensei »

Ich geh mal davon aus, dass Im Beispiel ein Tippfehler ist. Soll wahrscheinlich so sein: 65 = 2^6 + 1 und daher 65x = (x << 6) + x.
Und damit zu meiner Frage.
Zählt der Shift-Befehl (x << 6 ) als eine Bit-Operation oder sind es 6?

Sascha
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 245
Registriert: 13. Apr 2004 19:23
Wohnort: Darmstadt
Kontaktdaten:

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von Sascha »

sensei hat geschrieben:Ich geh mal davon aus, dass Im Beispiel ein Tippfehler ist. Soll wahrscheinlich so sein: 65 = 2^6 + 1 und daher 65x = (x << 6) + x.
Ja, siehe Homepage.
Und damit zu meiner Frage. Zählt der Shift-Befehl (x << 6 ) als eine Bit-Operation oder sind es 6?
Es handelt sich um eine Operation.


Viele Grüße,

Sascha Müller

sensei
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 29. Jun 2004 09:19

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von sensei »

Ok, danke für den Hinweis.

k_b
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 213
Registriert: 15. Mär 2009 12:06

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von k_b »

Hallo,

ich habe auch nocheinmal eine Verständnisfrage zur Aufgabe 2.2:

Dieses x hat doch den Wert 1, oder? Nach dem Beispiel auf der Übung würde es ja passen: 1 (binär) um 6 stellen nach rechts geshiftes = 64 (dezimal) und dann noch plus 1 um die 65 zu erhalten. Und die 1 kann man dann als 2^0 betrachten und somit dann als x << 0 darstellen.

Momentan versteh ich die Schreibweise (ganze Zahl)x noch nicht wirklich, z.B.: 4x . Wieso schreibt man das so? Ist die Zahl das eigentliche Ergebnis, was bei der Multiplikation, die man hier durch den Shift ausdrückt, raus kommen soll? Warum belegt man das x mit keinem Wert? (siehe obige Frage)


Danke schonmal ;)

ivoch
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 199
Registriert: 3. Mär 2004 10:51

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von ivoch »

x hat nicht den Wert 1, x ist eine beliebige Zahl, die du mit 65 multiplizierst. Die Vorgehensweise in der Aufgabe hat den Vorteil, dass es viel weniger Taktzyklen zur Berechnung nötig sind, als eine direkte Multiplikation - Shift- und Additionsoperationen sind viel weniger rechenintensiv.

Dass es wirklich so funktioniert, kannst du an diesem Beispiel sehen: x = 4, y = 9*x. Berechne y.

9 = 8 + 1 = 2^3 + 1, also shifte x um 3 nach links und addiere x

y = 9*x = (x << 3) + 4

x in binär ist 100. Geshiftet um 3 nach links ergibt 100000, was 32 in dezimal ist. Addiere 4 und du hast 36, was tatsächlich das Ergebnis von 9*4 ist.

Wenn du 10*x hättest, müsstest du (x << 3) + x + x berechnen, oder (x << 3) + 2x = (x << 3) + (x << 1). Also 32 + 4 + 4 = 40, oder 100000 + 1000 = 101000(2) = 40(10)

Und so weiter. :)

Telefonjoker
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 161
Registriert: 19. Apr 2008 21:02

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von Telefonjoker »

Weiß jmd welche "Schreibweise" wir bei der 2.2.c) verwenden sollen?
1er-, 2er-Komplement, oder Betragsschreibweise?

PS: Lob an ivoch für die ausführliche Antwort.

ivoch
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 199
Registriert: 3. Mär 2004 10:51

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von ivoch »

Ihr musst gar keine "Schreibweise" auswählen, denn es ist ja nicht gefordert, dass ihr die angegebenen Zahlen tatsächlich in Binär umwandeln musst. Wenn wir z.B. mein Beispiel von oben nehmen, müsst ihr nur folgendes machen: 9*x = (x << 3) + x. Ich hatte auch noch die Zahlen in Binär angegeben, aber nur um zu verdeutlichen, was ein Bit-Shift letzendlich tut.

Mira`
Mausschubser
Mausschubser
Beiträge: 92
Registriert: 27. Okt 2006 20:41

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von Mira` »

Sascha hat geschrieben:
sensei hat geschrieben:Ich geh mal davon aus, dass Im Beispiel ein Tippfehler ist. Soll wahrscheinlich so sein: 65 = 2^6 + 1 und daher 65x = (x << 6) + x.
Ja, siehe Homepage.
Und damit zu meiner Frage. Zählt der Shift-Befehl (x << 6 ) als eine Bit-Operation oder sind es 6?
Es handelt sich um eine Operation.


Viele Grüße,

Sascha Müller
(x << 6) + x:
x << 6 = 1 Bit-Operation
+ x = 1 Bit-Operation
=> 2 Bit-Operationen für dieses Beispiel.

Ist das korrekt, oder kehrt man die Addition unter den Tisch?

ivoch
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 199
Registriert: 3. Mär 2004 10:51

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von ivoch »

2 Operationen ist richtig.

Telefonjoker
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 161
Registriert: 19. Apr 2008 21:02

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von Telefonjoker »

sicher. dass wir bei der c) nicht 2er-Komplement verwenden sollen?
Immerhin steht bei der Aufgabe extra der Zusatz, wir können die Formeln aus Aufgabe 2.1. benutzen.

Oder sollen wir für x einen negativen Wert annehmen?

ivoch
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 199
Registriert: 3. Mär 2004 10:51

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von ivoch »

Sorry, ich hatte deine Frage vorher missverstanden. Ja, ihr solltet nach dem Shiften das Zweierkomplement aus dem Ergebnis bilden.

Niggi
Mausschubser
Mausschubser
Beiträge: 82
Registriert: 15. Apr 2009 15:16
Kontaktdaten:

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von Niggi »

angenommen ich benutze 2er komplement muss ich ja negieren .... zählt das als eine Operation obwohl ich alle bits "umdreh" analog zum schiften oder wird das bei n stellen als n Bitoperationen gezählt ?

ivoch
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 199
Registriert: 3. Mär 2004 10:51

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von ivoch »

Zähl die Negation als eine Operation - Addition und Shift werden intern ja auch bitweise ausgeführt, werden trotzdem als jeweils nur eine Operation behandelt.

k_b
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 213
Registriert: 15. Mär 2009 12:06

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von k_b »

Hallo,
ivoch hat geschrieben:Ja, ihr solltet nach dem Shiften das Zweierkomplement aus dem Ergebnis bilden.
Muss ich nicht schon gleich dei Zahl im Zweierkomplement angeben? Ich muss doch gleich mit dem Zweierkomplement im Hinterkopf mir überlegen wie ich die Zahl mit 2^x1+2^x2+...+x darstellen kann. Oder steh ich jetzt grad aufm Schlauch?

Edit: Ne, falsch. Klar ich muss es erst machen, wenn ich das Ergebnis habe, weil ich kann ja bei Shift und plus nicht reinbringen, dass die Zahl eigentlich negativ sein soll. Aber wie ging das nochmal, dass ich dann durch ne Bit-Operation das Zweierkomplement bekomme, kann mir da bitte grad jemand nochmal einen Tipp geben?


Danke schonmal ;)

Benutzeravatar
s!mon
Computerversteher
Computerversteher
Beiträge: 373
Registriert: 20. Okt 2007 18:24
Wohnort: Höchst i. Odw

Re: H2.2 Anzahl der Bit-Operationen

Beitrag von s!mon »

Als Hinweis steht doch schon da, dass du die Formel aus der ersten Aufgabe benutzen darfst. Also betrachte doch alles erst einmal positiv und benutze am Ende die Negationsformel. So habe ich es jedenfalls gemacht.

Antworten

Zurück zu „Archiv“