VAL/de

From MCS Wiki AVR
< VAL
Revision as of 23:38, 1 March 2013 by Stefanhamburg (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Funktion

Wandelt eine Zeichenkettendarstellung einer Zahl in eine Zahl um.

 

 

Syntax

var = VAL( s)

 

 

Anmerkungen

var

Numerische Variable der der Wert von s zugewiesen wird.

s

Zeichenkettenvariable.

 

Es hängt vom Variablentyp ab welche Konvertierungsroutinen intern benutzt werden. Single- und Double-Konvertierungen benötigen mehr Programmspeicherplatz.

Bei Verwendung von INPUT verwendet der Compiler intern auch die VAL-Funktion.

Um Code zu sparen gibt es andere Umwandlungsroutinen wie zum Beispiel BINVAL und HEXVAL.

Sie könnten dem Compiler hinzugefügt werden aber das würde Overhead bedeuten weil sie möglicherweise nie benötigt werden.

Mit Zeichenketten als Eingabe oder beim INPUT Befehl ist die Zeichenkette dynamisch und deshalb würden alle Konvertierungs-Routinen benötigt werden.

 

Die VAL()-Funktion prüft nicht auf ungültige Zeichen. Wenn sie benutzt werden dann ergibt das falsche Ergebnisse oder 0.

Falls Sie eine Prüfung auf ungültige Zeichen wünschen dann können Sie die Konstante _VALCHECK mit dem Wert 1 hinzufügen.

Dadurch wird Code erzeugt, der eine ERR-Variable auf 0 oder 1 setzt. Wenn ungültige Zeichen erkannt werden dann gibt ERR 1 zurück.

Da VAL auch beim INPUT-Befehl benutzt wird geht das auch beim INPUT-Befehl.

 

 

 

Siehe auch

STR , HEXVAL , HEX , BIN , BINVAL , STR2DIGITS

 

 

Beispiel


$regfile = "m48def.dat" ' Mikrocontroller
$crystal = 8000000 ' Taktfrequenz
$baud = 19200 ' Baudrate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
 
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
 
Dim A As Byte , S As String * 10
S = "123"
A = Val(s) 'Zeichenkette umwandeln
Print A ' 123
 
S = "12345678"
Dim L As Long
L = Val(s)
Print L
End

Beispiel 2


$regfile = "m48def.dat" ' Mikrocontroller
$crystal = 8000000 ' Taktfrequenz
$baud = 19200 ' Baudrate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
 
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
 
Const _VALCHECK=1 ' Prüfung bei VAL()
Dim A As Byte , S As String * 10
S = "123"
A = Val(s) 'Zeichenkette umwandeln
Print A ; " ERR:" ; Err ' 123
 
S = "1234a5678"
Dim L As Long
L = Val(s)
Print L ; " ERR:" ; Err
End

Languages   English Deutsch  
Personal tools
Namespaces
Variants
Actions
Navigation
In other languages
Language