Hallo,
kann mir jemand erklären, was die beiden Funktionen Rotate und Logical Shift genau machen?
Ich habe mir interessehalber mal ein Bsp. zusammengeklickt (vgl. Bsp.) und aus dem werde ich genauso wenig schlau wie aus der LabVIEW-Hilfe.
EDIT (am 11.07.2008 von Y-P): Diese Version ist noch mit Fehlern (x- und y-Eingänge vertauscht), die richtige Version kommt weiter unten!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[
attachment=12446]
Gruß Markus
Rotate schiebt z.B. letzten Bit in einem Byte auf die erste Stelle oder umgekehrt Bit vom Platz1 auf Platz8.
Wenn ich bei meinem Wert 1 einstelle und dann mein Array-Control durchklicke, dann passt es anfangs auch noch.
Bool-Array auf 0 (binär) => Ausgang auf 1
Bool-Array auf 1 => Ausgang auf 2
Bool-Array auf 2 => Ausgang auf 4
....jetzt kommts:
Bool-Array auf 3 => Ausgang auf 8 (erwartet hätte ich 6)?????
Bool-Array auf 4 => Ausgang auf 16 (erwartet hätte ich 8) ?????
.....
Ich steig' da nicht durch.
Gruß Markus
' schrieb:Rotate schiebt z.B. letzten Bit in einem Byte auf die erste Stelle oder umgekehrt Bit vom Platz1 auf Platz8.
2^0=1
2^1=2
2^2=4
2^3=8
2^4=16
uswusf..
Gruß,
Rob
Und wenn ich bei Wert z.B. "3" eingebe und im Array 4 einstelle, wie komme ich dann auf mein Ergebnis? Irgendwie blicke ich den Zusammenhang zwischen meinem Eingangsarray und dem Wert nicht?
Und was ist eigentlich der Unterschied zwischen den beiden Funktionen, außer dass "Rotate" irgendwann mal begrenzt wird?
Gruß Markus
' schrieb:2^0=1
2^1=2
2^2=4
2^3=8
2^4=16
uswusf..
Gruß,
Rob
' schrieb:Und wenn ich bei Wert z.B. "3" eingebe und im Array 4 einstelle, wie komme ich dann auf mein Ergebnis? Irgendwie blicke ich den Zusammenhang zwischen meinem Eingangsarray und dem Wert nicht?
Und was ist eigentlich der Unterschied zwischen den beiden Funktionen, außer dass "Rotate" irgendwann mal begrenzt wird?
Gruß Markus
10101010 rotiert = 01010101
00110011 left-shifted(1) = 01100110
4= 00000100
leftshifted(3) = 00100000 = 32= 4* 2*2*2
Hoffe das stimmt jetzt so ohne LV angeworfen zu haben..
Für sowas ist es manchmal ganz nützlich etwas Programmiererfahrung in ASM zu haben.
Gruß,
Rob
Mist, ich hatte die Eingänge verdreht angeschlossen.
Da kann ich mich ja lange wundern, wieso da nur sch.... rauskommt.
Ich habe auch das erwartet, was Du geschrieben hast. Danke Dir.
Hier ist die funktionierende Version.
[
attachment=12454]
Gruß Markus
' schrieb:10101010 rotiert = 01010101
00110011 left-shifted(1) = 01100110
4= 00000100
leftshifted(3) = 00100000 = 32= 4* 2*2*2
Hoffe das stimmt jetzt so ohne LV angeworfen zu haben..
Für sowas ist es manchmal ganz nützlich etwas Programmiererfahrung in ASM zu haben.
Gruß,
Rob
' schrieb:10101010 rotiert = 01010101
00110011 left-shifted(1) = 01100110
4= 00000100
leftshifted(3) = 00100000 = 32= 4* 2*2*2
Hoffe das stimmt jetzt so ohne LV angeworfen zu haben..
Für sowas ist es manchmal ganz nützlich etwas Programmiererfahrung in ASM zu haben.
Gruß,
Rob
ASM ist hilfreich aber nicht nötig. Kenntnis von Boolscher Algebra ist aber sicher sinnvoll und hilfreich wenn man sich auf Bitschiebereien und andere Bitoperationen zulegen will.
Rolf Kalbermatter