Ein Cast beschreibt die Wandlung eines Datentypen in einen differenten Datentyp.
long = long1 * long2 ' als Beispiel
Der zugewiesene Variablen Datentyp bestimmt, welche Art von Berechnung durchgeführt wird.
Wenn sie z.B. LONG Typen zuweisen, wird eine Berechnung für LONG Datentypen ausgeführt.
Wenn sie versuchen den Inhalt einer LONG Variable einem Byte zuzuweisen, wird das LSB (niederwertigste Byte) dem Byte zugewiesen.
Byte = LONG
Wenn der LONG einen Wert von 256 enthält, passt dies nicht in ein Byte. Das Ergebnis ist: 256 AND 255 = 0
Binärdarstellung der Maskierung:
Hinweis: 256 AND 255 nennt man Maskieren. 255 ist in binärer Schreibweise 11111111, also 8 BIT auf Wert 1 gesetzt. Im Wert 256 ist keines der unteren 8 BIT auf 1 gesetzt, weshalb bei einem "logischen und" (AND) von 256 und 255 der Wert 0 als Ergebnis steht!
Es steht ihnen frei, unterschiedliche Datentypen zu verwenden. Das richtige Ergebnis ist aber nur garantiert, wenn sie gleiche Datentypen verwenden oder das Ergebnis in den Ergebnis Datentyp passt.
Wenn sie Strings verwenden, gelten die gleichen Regeln bis auf eine Ausnahme:
Dies ist ein Unterschied zu QB/VB, wo man einen String nicht einem Byte zuweisen kann.
Der zugewiesene Variablen Datentyp bestimmt, welche Art von Berechnung durchgeführt wird.
Wenn sie z.B. LONG Typen zuweisen, wird eine Berechnung für LONG Datentypen ausgeführt.
Wenn sie versuchen den Inhalt einer LONG Variable einem Byte zuzuweisen, wird das LSB (niederwertigste Byte) dem Byte zugewiesen.
Byte = LONG
Wenn der LONG einen Wert von 256 enthält, passt dies nicht in ein Byte. Das Ergebnis ist: 256 AND 255 = 0
Binärdarstellung der Maskierung:
Hinweis: 256 AND 255 nennt man Maskieren. 255 ist in binärer Schreibweise 11111111, also 8 BIT auf Wert 1 gesetzt. Im Wert 256 ist keines der unteren 8 BIT auf 1 gesetzt, weshalb bei einem "logischen und" (AND) von 256 und 255 der Wert 0 als Ergebnis steht!
Es steht ihnen frei, unterschiedliche Datentypen zu verwenden. Das richtige Ergebnis ist aber nur garantiert, wenn sie gleiche Datentypen verwenden oder das Ergebnis in den Ergebnis Datentyp passt.
Wenn sie Strings verwenden, gelten die gleichen Regeln bis auf eine Ausnahme:
BASCOM Source Code
- Dim b as Byte
- b = 123 ' nichts besonderes, Wert wird einem byte Typ zugewiesen
- b = "A" ' ASCII von "A" = 65 --> b = 65
- Wird dem Datentyp BYTE eine Stringkonstante in der Form "A" zugewiesen, so wird der ASCII Wert des Zeichen in das Byte übertragen.
- Dies funktioniert auch bei logischen Vergleichen:
- IF b = "A" then ' wenn b = 65
- END IF
7,245 times viewed