LabVIEWForum.de - Logische Funktionen

LabVIEWForum.de

Normale Version: Logische Funktionen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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]
Lv80_img

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. Blush
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]
Lv80_img

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
Referenz-URLs