Variablen werden benutzt, um Daten zu speichern. Dieser Artikel soll eine Übersicht über die Variablen in Bascom bieten.
Inhaltsverzeichnis
Zur Erklärung
In den Quelltexten zur Erzeugung der Variablen steht "Name" immer für den Namen, der der Variablen zugewiesen werden soll (ist ja auch logisch ;-)
Bits
Alle Zahlen und Buchstaben in der Digitaltechnik bestehen letztendlich aus mehreren Bits, doch dazu mehr im Abschnitt Bytes. Ein Bit kann entweder 0 oder 1 sein und ist somit die Variable mit dem kleinsten Wertebereich.
Hier der Steckbrief:
Wertbereich: 0 bis 1
Erzeugung in Bascom: Dim Name As Bit Wertzuweisung in Bascom: Name = 1 'setzt die Variable auf 1 Name = 0 'setzt die Variable auf 0 oder Set Name 'setzt die Variable auf 1 Reset Name 'setzt die Variable auf 0 |
Bytes
Wie oben angesprochen setzt sich alles in der Digitaltechnik aus Bytes zusammen. Wie das funktioniert soll diese Tabelle erläutern:
Bit-Nummer | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Bit-Wert | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Bitmuster | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 |
Diese Bitfolge (Bitmuster) stellt die Zahl 100 dar. Ist das Bit unter der entsprechenden Zahl gleich 1, wird die Zahl addiert, ist das Bit 0 dann nicht. So kann man aus einsen und nullen ganze Zahlen machen. Die Menge der Bits bestimmt den Wertebereich der Variablen, z.B. hat die oben gezeigte Tabelle 8 Bits (also ein 8-Bit Byte). Würde man jetzt jedes Bit auf eins setzen, hätte man den maximalen Wertebereich, in unserem Fall 255. In Bascom werden passenderweise auch 8-Bit Bytes verwendet.
Da hier ein Binärsystem vorliegt (Basis 2) könnte man auch die folgende Schreibweise anwenden:
Bit: | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Name: | NEIN | JA | JA | NEIN | NEIN | JA | NEIN | NEIN |
(2^2) + (2^5) + (2^6) = 100 Dez. (nur die gesetzten Bits bzw, deren Nummer als Hochzahl addieren) {2^0 = 1}.
So viel zur Theorie, kommen wir zur Praxis.
Dazu wieder ein kleiner Steckbrief:
Wertebereich: 0 bis 255 und alle Buchstaben des Alphabets (ausgenommen Umlaute + das ß)
Erzeugung in Bascom: Dim Name As Byte Wertzuweisung in Bascom: Name = 100 'setzt die Variable auf 100 Name = "a" 'speichert den Buchstaben a in der Variable Name = Name + 2 'addiert 2 zur Variablen, funktioniert logischerweise nur korrekt, wenn die Variable eine Zahl als Wert hat Name = Name + &B00000010 (auch wieder 2 Addieren allerdings in binärer (&B) Schreibweise) |
Integer
Im Gegensatz zu Bytes können Integer (Integralzahlen) nur Zahlen und keine Buchstaben speichern. Außerdem können sie auch Zahlen im negativen Bereich speichern.
Mehr ist dazu nicht zu sagen, also gleich der Steckbrief:
Wertebereich: -32768 bis +32767
Erzeugung in Bascom: Dim Name As Integer Wertzweisung in Bascom: Name = 2500 'setzt die Variable auf 2500 Name = Name + 5000 'addiert 5000 zur Variablen |
Darstellung von Integerzahlen als Binärwert
1 = &B0000000000000001 -1 = &B1111111111111111 2 = &B0000000000000010 -2 = &B1111111111111110 255 = &B0000000011111111 -255 = &B1111111100000001 32767 = &B0111111111111111 -32768 = &B1000000000000000
Bascom Code: print bin (Name)
Long-Variablen
Long-Variablen haben den größten Wertebereich.
Hier wieder ein Steckbrief:
Wertebereich: -2147483648 bis 2147483647
Erzeugung in Bascom: Dim Name As Long Wertzuweisung in Bascom: Name = 10000000 'setzt die Variable auf 1000000 Name = Name + 30234 'addiert 30234 zur Variablen |
Word-Variablen
Words können ebenfalls nur Zahlen speichern, aber sind nur im positivem Bereich gültig. Steckbrief:
Wertebereich: 0 bis 65535
Bit-Nummer | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Bit-Wert | 32768 | 16384 | 8192 | 4096 | 2048 | 1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Bitmuster | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
Dieses Bitmuster (&B1100110011001100) stellt den Wert 52428 (dez.) dar.
Erzeugung in Bascom:
Dim Name As Word
Wertzuweisung in Bascom:
Name = 3333 'setzt die Variable auf 3333 Name = Name + 20 'addiert 20 zur Variablen Name = Name + &B00010100 'addiert auch 20 (Binär 00010100)zur Variablen
Strings
Strings können sowohl Zahlen als auch Buchstaben speichern, allerdings kann man mit den Zahlen in Strings nicht rechnen. Sie sind besonders für längere Textabschnitte wie Namen, etc. geeignet.
Aber ein Steckbrief sagt mehr als tausend Worte:
Wertebereich: max. 70 Zeichen
Erzeugung in Bascom: Dim Name As String * 50 'Die Zahl am Ende gibt an, wie viele Zeichen die Variable maximal enthalten kann 'Hier kann man 0 bis 70 auswählen Wertzuweisung in Bascom: Name = "Hallo! 123456" 'Weist der Variablen den Text in Anführungszeichen zu |
Bei der Zuweisung von Text zu Stringvariablen muss man als Programmierer selbst darauf achten, dass die Stringlänge, die man mit z.B. "Dim Name As String * 50" definiert hat, nicht überschritten wird. Sonst sind unvorhersehbare Effekte und Absturz möglich.
Konstanten
Wie dem Namen zu entnehmen ist, handelt es sich hier nicht wirklich um Variablen. Aber es wäre unnötig extra dafür einen Artikel anzulegen, also wird dieses Thema hier mit behandelt. Konstanten kann man nur einmal einen Wert zuweisen, danach ist dieser unveränderlich. Auch sie können sowohl Zahlen als auch Buchstaben speichern.
Der Steckbrief:
Wertebereich:Von mir noch nicht erprobt, sollte ihn jemand kennen bitte hier eintragen.
Erzeugung in Bascom + Wertzuweisung: Const Name = "test" 'Weist der Konstante "Name" den Text in Anführungszeichen zu mit Zahlen funktioniert das auch: Const Name = 1234 'Weist der Konstante "Name" den Wert 1234 zu |
Wie man sieht muss man den Wert direkt bei der Erzeugung angeben.
Und was soll das ganze?
Für alle die sich jetzt fragen, was genau dieser Artikel bewirken soll:
Ich weiß, dass viel erklärt wird, was die meisten sowieso schon wissen (z.B. dass die Zahlen aus Bits bestehen), aber keiner wusste es von Anfang an, jeder muss es irgendwann gelernt haben. Dennoch dient dieser Artikel nicht nur Anfängern als Tutorial, sondern auch Fortgeschrittenen als Nachschlagewerk (Ich wette es gibt nicht viele Leute, die den Wertebereich der Long-Variablen auswendig können ;-)
Autor
- Shahri 17:45, 17. Mai 2006 (CEST)