Variablen sind im Sourcecode durch Bezeichner benannte Speicherzellen im Arbeitsspeicher (SRAM) oder Eeprom (ERAM). Ihnen können Werte zugewiesen werden, um sie an anderer Stelle auszulesen.
Variablen werden mit Dim (Arbeitsspeicher) und/oder eeDim (Eeprom) dimensioniert (erzeugt/angelegt).
Variablen besitzen Objekteigenschaften:
Eigenschaften der numerischen Standard-Variablen (boolean, byte, word, integer, long, single, ..) | |||
---|---|---|---|
Name | Beschreibung | Typ | read/write |
.0-x1) | Bit n des Variablenwertes | boolean | read+write |
.LowNibble | Low-Nibble des Variablenwertes | byte | read+write |
.HighNibble | High-Nibble des Variablenwertes | byte | read+write |
.Nibblen | Nibble n (1-8) des Variablenwertes | byte | read+write |
.Byten2) | Byte n (1-4) des Variablenwertes | byte | read+write |
.LowByte3) | Low-Byte des Variablenwertes | byte | read+write |
.HighByte4) | High-Byte des Variablenwertes | byte | read+write |
.LowWord5) | Niederwertiges Word des Variablenwertes | word | read+write |
.HighWord6) | Höherwertiges Word des Variablenwertes | word | read+write |
.Reverse7) | Byte-Anordnung umdrehen, siehe auch CE16(), CE32() | word, long | read |
.Addr8) | Adresse der Variable9) | word | read |
.Ptr10) | Adresse des MemoryBlocks | word | read |
.SizeOf | Vom Datentyp belegte Anzahl Bytes lesen. | byte | read |
Methoden von Byte und Word-Arrays11) | |
---|---|
Name | Beschreibung |
.Sort | Arraywerte aufsteigend sortieren (sehr schneller Qsort-Algorithmus) |
Benutzerdefinierte Datentypen mittels Struct erben die Methoden/Eigenschaften der jeweilig in der Struktur deklarierten Elemente.
Die Datentypen String und MemoryBlock besitzten weitere Methoden bzw. Eigenschaften.
Variablen müssen dimensioniert werden, bevor man sie verwenden kann. Variablen speichern Werte entsprechend ihres Datentyps.
Siehe auch: Dim, Abschnitt "Sichtbarkeit von Variablen"
Wie in der obigen Tabelle ersichtlich, kann man auf einzelne Bits einer Variable zugreifen und diese lesen oder schreiben. Der Zugriff auf ein Bit ist auch mit einer weiteren Variable möglich, welche die Bit-Nummer enthält:
Beispiel:
Der Zugriff mit einem konstanten Wert ist in der Ausführungsgeschwindigkeit jedoch schneller:
Beispiel:
dim a,b as byte dim c as word dim s as string c=&ha1b2 ' Wert zuweisen, Hexadezimal (liegen rückwärts im Speicher da Hexwert immer Big-Endian) a=c.LowByte ' Low-Byte des Variablenwertes lesen, Ergebnis: &hb2 b=c.HighByte ' High-Byte des Variablenwertes lesen, Ergebnis: &ha1 c.LowByte=b ' vertauscht wieder hineinschreiben c.HighByte=a c.0=1 ' Bit 0 in c setzen a=b.7 ' Bit 7 von b lesen a=3 c=b.a ' Bit 3 von b lesen, Bitnummer steht in a Print "&h"+hex(c) ' Ausgabe: &hb2a1 s = "Hallo" ' Text zuweisen a = s.ByteValue(1) ' Dezimalwert des 1. Zeichens vom im String gespeicherten Text lesen
Siehe auch