VEEforum.de deutschsprachiges Forum für VEE Entwickler

Normale Version: Result-Type eines Formulars festlegen.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag,

ich sitze jetzt schon mehrere Stunden an einem Problem und hoffe jemand hier kann mir helfen.

Zu meinem Problem:
Ich verknüpfe in einer Formula mittels Bitoperationen 4 Bytes zu einer Ganzzahl. Der Rückgabewert dieser Forumla hat den Datentyp UInt8, sollte aber UInt32 haben.

Manuell kann ich das leider nicht anpassen. Neuerstellen der Formula brachte auch nichts.

Hat jemand eine Idee?


Freundliche Grüße

Mats
Also meines Wissens gibt es in VEE keinen Datentyp "UInt32". Es gäbe "Int32" oder "Int64".
Int64 müsste als im positiven Bereich zumindest soweit reichen wie ein "UInt32" (ich nehme an du willst von 0 bis 4294967295 (= 2^32 -1) )

Mus es unbedingt BitShift und BitOr sein ? Warum rechnest du nicht:

Result = 16777216 * A[111] + 65536 * A[112] + 256 * A[113] + A[114]
= 2^24 * A[111] + 2^16 * A[112] + 2^8 * A[113] + A[114]

manchmal bekommt VEE (wie auch andere Programmiersprachen) bei solchen Rechnungen einen Überlauf, da für die "interne" Berechnung zu wenig "Bit-Platz" reserviert wird.
Umgehen kannst du das indem du deine UInt8-Werte zuerst in Int64-Werte wandelst mit asInt64(A[111]) usw.
also Result = 16777216 * asInt64(A[111]) + 65536 * asInt64(A[112]) + ........ usw.

hoffe das ist ungefähr das was du suchst
Vielleicht hast Du Deine Aufgabe schon gelöst.

Suche mal hier im Forum nach: "float" oder "IEEE"

Vielleicht geht auch der Link hier: http://www.veeforum.de/4-byte-kommawert-...t-413.html (Wenn nicht, kopieren)

Wenn's nicht klappt, ich sende Dir gerne meine Codes.
Referenz-URLs