Rechnen mit negativem Ergebnis in Bascom

OP #4695948
Hallo liebe Helfer,

ich rechne mit Long-Variablen, da ich sehr grosse Zahlen verwende.
Probleme gibt es sobald ein Wert negativ wird.
Beispiel mit kleinen Werten:
9900 - 10000 sollte -100 ergeben
Angezeigt wird 4294967196
Was mache ich falsch?

Vielen Dank für eure Hilfe.
Ditt
OP
Vielen Dank für die Antwort.

Mein Testprogramm:

Dim Test1 As Long
Dim Test2 As Long
Dim Test3 As Dword


   Test1 = 9900
   Test2 = 10000

   Test3 = Test1 - Test2

   Locate 1 , 1
   Lcd Test3

Das Problem war die Variable Test3 als Dword.
Nach Änderung auch zu Long wurde der richtige
Wert -100 angezeigt. Man sollte wohl bei
arithmetischen Rechnung immer die gleichen Definitionen
verwenden.

Nochmals vielen Dank
Ditt
Gast
Dieter B. schrieb:
> Man sollte wohl bei arithmetischen Rechnung immer die gleichen
> Definitionen verwenden.

Nein, das ist nicht das Problem. Wenn als Ergebnis der Operation 
negative Zahlen auftreten können, muss sowohl die Funktion negative 
Zahlen zurückgeben können, als auch die Ergebnisvariable negative Zahlen 
aufnehmen können.
Rufus Τ. F. schrieb:
> Carl bezieht sich auf die eher als "einfach strukturiert" zu
> bezeichnende Qualität des Bascom-Compilers.

Ach so meint ihr das, ihr Schlingel.
:)

Trotzdem ist mir das lieber, als mit blödsinnigen Fehlermeldungen 
zugeschüttet zu werden, die mit dem Fehler nicht das Geringste zu tun 
haben.
Man kann m.E.n. von den Leuten verlangen, daß sie sehen, ob ein Ergebnis 
"zu dick" für den gewählten Datentyp wird und überquillt.

MfG Paul
Gast
Paul B. schrieb:
> Trotzdem ist mir das lieber, als mit blödsinnigen Fehlermeldungen
> zugeschüttet zu werden, die mit dem Fehler nicht das Geringste zu tun
> haben.

Du sprichst von C?
Da ist oft nur die erste Fehlermeldung interessant. Der Rest ist meist 
nur das Produkt der Verzweifelungstat des Compilers, dem nachfolgenden, 
jetzt mehr oder weniger sinnlosen Code, doch noch irgendeine Bedeutung 
abzugewinnen, was dann kläglich scheitert und in seitenfüllenden 
Fehlerlisten mündet.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.