INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Typecast



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

08.12.2009, 22:20
Beitrag #1

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Typecast
Guten Abend,

ich würde gerne wissen ob, ...

es einem Unterschied macht, wenn LV den Typecast macht -> roter Punkt
... oder ob man es selbst macht mit z.B. der Konvertierungspalette.

Bei einem LV Anwendertreffen hat man uns erzählt man soll die roten Punkte vermeiden, weil dann zusätzlich Speicher allokiert wird.

Kümmert Ihr euch da drumm oder lasst Ihr die Punkte Punkte sein?


Gruß dimitri

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2009, 22:23
Beitrag #2

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Typecast
Es macht keinen Unterschied. Nur wenn du es ignorierst und gar nicht berücksichtigst, kann es zu komischen Verhalten im Programm kommen.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2009, 22:38
Beitrag #3

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Typecast
' schrieb:Nur wenn du es ignorierst und gar nicht berücksichtigst, kann es zu komischen Verhalten im Programm kommen.
Also lieber immer selbst machen, richtig?

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.12.2009, 23:04 (Dieser Beitrag wurde zuletzt bearbeitet: 08.12.2009 23:04 von eg.)
Beitrag #4

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Typecast
Nur damit du explizit weisst, was im Programm passiert. Roter Punkt sagt z.B. nicht aus von welchem und in welchen Datentyp es castet.

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2009, 08:49 (Dieser Beitrag wurde zuletzt bearbeitet: 09.12.2009 08:51 von rolfk.)
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Typecast
' schrieb:Guten Abend,

ich würde gerne wissen ob, ...

es einem Unterschied macht, wenn LV den Typecast macht -> roter Punkt
... oder ob man es selbst macht mit z.B. der Konvertierungspalette.

Bei einem LV Anwendertreffen hat man uns erzählt man soll die roten Punkte vermeiden, weil dann zusätzlich Speicher allokiert wird.

Kümmert Ihr euch da drumm oder lasst Ihr die Punkte Punkte sein?
Gruß dimitri

Zuerst mal es ist kein Typecast sondern eine Konversion, was der Coercion-Dot macht. Bei einem Typecast bleibt der Speicherinhalt soviel möglich dasselbe aber der (interpretierte) Wert der Daten wird anders. Bei einer Konversion ist es genau umgekehrt.

Und die Antworten bis jetzt waren meiner Meinung nach jetzt etwas zu undifferenziert. Bei Skalars macht es prinzipiel nichts aus, aber explizite Konversion hilft wie von Eugen angegeben oft der Deutlichkeit.

Bei Arrays kann es durchaus einen Unterschied machen ob man explizit oder implizit konvertiert. Nimm als Beispiel eine Loop in der auf irgendeine Weise Single Precision Werte generiert werden die durch Autoindexing in ein Array angelegt werden. Dieses Array wird danach mit einem Double Precision Arrayeingang verbunden. Ohne explizite Konversion wird der Konversionsdot am Arrayeingang gemacht. Es wird also zuerst ein Single Precision Array angelegt und dieses wird danach in ein Double Precision Array konvertiert. Mit expliziter Konversion innerhalb der Loop, wird ganz einfach ein einzelnes Double Precision Array angelegt. Die Konversion findet so oder so statt, aber LabVIEW muss ein Array weniger anlegen, was sowohl Speicher als auch Laufzeit spart.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2009, 09:07
Beitrag #6

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Typecast
Von welchem Typ in welchen umgewandelt wird, ist aber klar, wenn der Eingang nur einen bestimmten Typ erwartet.

Ich mache mir nicht allzuviele Sorgen um die roten Punkte. Wenn es eindeutig ist, wie umgewandelt wird, lasse ich sie stehen. Ich vermeide Sie, wenn der rote Punkt verschwindet, indem ich z. B. den Datentyp einer Drahtes (Variable) bzw. eines Eingabe- oder Anzeigeelements Controls ändern kann. Bei der Umwandlung von DBL nach Integer sollte man nachdenken, ob man nicht aufrunden oder abrunden möchte.

Manchmal kann der Rote Punkt auch effizienter sein als eine explizite Umwandlung: guckst Du hier.

Übrigens ein roter Punkt ist kein Type Cast im eigentlichen Sinne. Beim Type Cast wird die binäre Darstellung als ein andere Typ intepretiert. Ein DBL hat 8 Byte und kann in ein Array von 4 I16 oder 8 Zeichen gecastet werden. Manchmal wird beim roten Punkt ein Type Cast durchgeführt (z. B. U8 -> I8) hingegen ist SGL -> I64 eine Umwandlung der Zahl mit Rundung.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2009, 09:55
Beitrag #7

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Typecast
Seid bedankt.

' schrieb:Manchmal kann der Rote Punkt auch effizienter sein als eine explizite Umwandlung: guckst Du hier.

Da wird aber nicht erklärt wann der 'coercion dot' effizienter ist, oder?

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2009, 10:36
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Typecast
' schrieb:Seid bedankt.
Da wird aber nicht erklärt wann der 'coercion dot' effizienter ist, oder?

Aber sicher doch. Man muss nur ein wenig nachdenken. Die Multiplikation kann das Integer Array Inplace benützen. Mit der Konversion wird explizit ein weiteres Array angelegt. Das funktioniert aber nur bei LabVIEW Built-in Nodes. Die können und probieren Inplaceness zu verwenden wenn immer möglich.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2009, 10:46
Beitrag #9

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Typecast
Offtopic2Verdacht

Wie funktioniert das?

   

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.12.2009, 11:35
Beitrag #10

dimitri84 Offline
Astronaut
*****


Beiträge: 1.496
Registriert seit: Aug 2009

2020 Developer Suite
2009
DE_EN

53562
Deutschland
Typecast
Wenn man ganz besonders dankbar ist und ganz ganz fest dran glaubt!










keine Ahnung wie das gekommen ist

„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  TypeCast U16-Array auf FXP-Array - zu wenige Elemente eb 7 6.289 13.03.2012 17:07
Letzter Beitrag: eb
  2x I32 TypeCast zu 1x DBL wie realisieren? enigma 2 4.669 08.09.2010 07:38
Letzter Beitrag: GerdW
  Was geht bei meinem TypeCast schief? Xaran 5 5.365 14.07.2009 09:52
Letzter Beitrag: Xaran
  Datentyp ermitteln / Typecast inGENIEur 5 10.842 05.04.2009 23:13
Letzter Beitrag: macmarvin

Gehe zu: