Hi leute nach lange suchen bin ich immer noch nicht drauf gekommen wie kann ich mit GCC di Nibbles tauschen also so 00001111 -> 11110000 an sich reicht es mir auch so xxxx1111-> 11110000 gibt es dafür einen routine? danke schon mal
Für den 2. Fall: x <<= 4;
also test=0b01011111; test <<4; würde in test 11110000 stehen?
Gast
#1186303
>00001111 -> 111100001 | |
>00001111 -> 111100001 | |
Es werden immer Nullen nachgezogen. Willst du wirklich tauschen, dann so.
1 | |
(Der Compiler sollte daraus ein SWAP machen)
Hi super danke =) es funzt jetzt noch mal kurz ne frage am rande ich habe in 2 Arrays werte stehen z.b array(1,3); x array(5,5); = array(7,1,5); mathematische operation wäre 13 x 55 =715 wie gehe ich da am besten vor? array auszählen und dann mit dem 8bit register arbeiten?
Gast
#1186336
Wie würdest du es denn von hand machen?
ja ich hätte beide arrays ausgezählt damit das in 2 regsiter steht. und dann die beiden register multipliziert und wieder aufgeteilt.
Gast
#1186354
>array(1,3);
x
array(5,5);
=
array(7,1,5);
Hä? Das musst du mal genauer erklären...!
Matthias Lipinsky wrote: >>array(1,3); > x > array(5,5); > = > array(7,1,5); > > Hä? Das musst du mal genauer erklären...! in 'array' steht eine BCD Zahl.
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
ahhh =) hätte man auch drauf kommen können danke danke
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.