Nibbles tauschen

Gast #1186303
Lesenswert?

>00001111 -> 11110000
1
x = (x>>4);

>00001111 -> 11110000
1
x = (x<<4);

Es werden immer Nullen nachgezogen.

Willst du wirklich tauschen, dann so.
1
x = (x<<4) | (x>>4);

(Der Compiler sollte daraus ein SWAP machen)
#1186371
Lesenswert?

Ulf Cramme wrote:
> ja ich hätte beide arrays ausgezählt damit das in 2 regsiter steht.
> und dann die beiden register multipliziert und wieder aufgeteilt.

Falscher Ansatz.
Wie multiplizierst du denn von Hand?

Du fängst bei den niederwertigsten Stellen an und multiplizierst jede 
Stelle mit jeder, wobei du einen Übertrag mitschleifst. Und zum Schluss 
werden die einzelnen Teilsummen geeignet versetzt (also mit 10 
multipliziert) zusammengezählt. Erinnere dich einfach mal daran, wie du 
das in der Grundschule gelernt hast.

Und genau dasselbe ahmst du jetzt mit einem Programm nach.

  13 * 57

                    5 * 3 macht 15, also 5 anschreiben und 1 Übertrag
                    5 * 1 macht 5 plus die 1 Übertrag mach 6

                    7 * 3 macht 21, 1 anschreiben, 2 Übertrag
                    7 * 1 macht 7, plus die 2 Übertrag macht 9


  13 * 57
 ---------
  65
   91

                   650 + 91 macht 741
 -----
  741

13 * 57 -> 741

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren