5-stellige ascii zahl in normale zahl umwandeln

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo,
folgendes problem: ich muss von ascii in eine (normale zahl) umwandeln.
problem ist, das die nummer 5-stellig ist.
von der ascii zahl subtrahiere ich :
l mb 0 - 31
l 48
-i
t mb1 - hier steht meine 1. soweit so gut.

wie bekomme ich nun eine 5-stellige zahl zusammengebastelt?

danke
 
Du kannst den FC 38 der IEC-Functionblocks aus der Standard-Library verwenden.

FC38

Die Funktion FC 38 wandelt eine Zeichenkette in eine Variable im INT­Format. Das erste Zeichen in der Zeichenkette darf ein Vorzeichen oder eine Ziffer sein, die dann folgenden Zeichen müssen aus Ziffern bestehen. Ist die Länge der Zeichenkette Null oder größer als 6 oder befinden sich unerlaubte Zeichen in der Zeichenkette, findet keine Wandlung statt und das BIE­Bit wird auf ”0" gesetzt. Liegt das Ergebnis der Wandlung außerhalb des INT-Zahlenbereichs, wird das Ergebnis auf den entsprechenden Wert begrenzt und das Binärergebnis BIE auf "0" gesetzt.

Parameter Deklaration Datentyp Speicherbereich Beschreibung
S INPUT STRING D, L Eingangszeichenkette
RET_VAL OUTPUT INT E, A, M, D, L Ergebnis
Der Eingangsparameter kann nur mit einer symbolisch definierten Variablen belegt werden.
Wenn deine Werte in je einem MB stehen und du schon aus dem Char-Wert eine Zahl (durch die Subtraktion) gemacht hast kannst du auch einfach rechnen.

MB1 (Einer)
+ (MB2 (Zehner)*10)
+ (MB3 (Hunderter)*100)
+ (MB4 (Tausender)*1000)
...

Nachtrag:

Oder scheu mal in der Hilfe unter BTD (BCD wandeln in Ganzzahl (32 Bit))
 
Zurück
Oben