Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
LiFePO4 Speicher Test

Variablen werden benutzt, um Daten zu speichern. Dieser Artikel soll eine Übersicht über die Variablen in Bascom bieten.

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. 254 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 1 bis 254 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)

LiFePO4 Speicher Test