Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> > Das kann's nicht sein. 9 * 100.000, 4 * 1.000.000 ... klappt ja! > > Wird wohl schon irgendwo ein Bug sein. Naja, läuft ja jetzt. > > Hallo, > > Das mit dem Bug wird wohl sein. > Bei 4*10000 entsteht in der Rechnung ein INT-Überlauf. > bei 9*100000 sind die 100000 schon long. Dadurch kann es sein, das der Compiler > den richtigen Datentyp beibehält. > Bei 4*10000 wählt der Compiler auf jeden Fall den falschen Typ. > Der Fehler ist bekannt-siehe André's FAQ. Ich fall aber auch öfter drauf rein. > > Gruß krassos > > > > > > > Thanx für deine Zeit Hansi > > > > > > > > > > Hallo Jörg, > > > > > > ja ist schon komisch, aber Du hast geschrieben bei Werten bis 3 funktioniert es, dann nicht mehr. > > > Eine Integer-Variable kann 3*10.000 noch aufnehmen, bei 4*10.000 brauchst Du halt den Typ Long. > > > > > > Bye Hansi ...einfach ausprobieren > > > > > > > Hi Hansi. > > > > > > > > Hat natürlich was der Ansatz mit Byte und Long Variablen. > > > > Ist bestimmt sicherer erst mit: tempvar = (getchar(faktor, 8) - 48); > > > > > > > > (ev. besser noch: > > > > tempbyte = (getchar(faktor, 8) - 48); > > > > tempvar = tempbyte; und weiterrechnen) > > > > > > > > die Typ-Konvertierung durchzuführen und dann zu rechnen. > > > > > > > > Unlogisch ist dabei eigentlich nur der Effekt, dass es 7x klappt und 1x nur bei Byte-Wert 48 - 51. > > > > > > > > Jörg > > > > > > > > > > > > > > > > > > > > > > Hallo Jörg, > > > > > > > > > > die Funktion getchart() liefert Dir Integer / Byte zurück und Deine Berechnungen nutzen > > > > > den Typ long. > > > > > > > > > > Übergebe vor Deinen Berechnungen den Wert von getchar() an eine long-Variable und > > > > > rechne damit weiter oder laß von getchar() ein Typ long zurück geben, dann sollte es > > > > > klappen. > > > > > > > > > > Gruß Hansi > > > > > > > > > > > > > > > > Effekte, welche 5h Fehlersuche zur Folge haben: > > > > > > > > > > > > -------------------------------------------------------------------------- > > > > > > > > > > > > function getchar(byte s[], int position) returns byte > > > > > > { > > > > > > return s[position]; > > > > > > } > > > > > > > > > > > > function para3(long kafaktor) returns long > > > > > > { > > > > > > string faktor; > > > > > > long tempvar; > > > > > > > > > > > > faktor = "K-Fa:00000000"; > > > > > > > > > > > > // ... Benutzereingabe des K-Faktors > > > > > > > > > > > > kafaktor = 10000000 * (getchar(faktor, 5) - 48); > > > > > > tempvar = 1000000 * (getchar(faktor, 6) - 48); > > > > > > kafaktor = kafaktor + tempvar; > > > > > > tempvar = 100000 * (getchar(faktor, 7) - 48); > > > > > > kafaktor = kafaktor + tempvar; > > > > > > > > > > > > tempvar = (getchar(faktor, 8) - 48); > > > > > > tempvar = tempvar * 10000; > > > > > > // funktioniert immer > > > > > > > > > > > > // tempvar = 10000 * (getchar(faktor, 8) - 48); > > > > > > // funktioniert nicht, wenn (getchar(faktor, 8) - 48) einen Wert > 3 liefert > > > > > > // --- ??? --- > > > > > > > > > > > > kafaktor = kafaktor + tempvar; > > > > > > tempvar = 1000 * (getchar(faktor,9) - 48); > > > > > > kafaktor = kafaktor + tempvar; > > > > > > tempvar = 100 * (getchar(faktor,10) - 48); > > > > > > kafaktor = kafaktor + tempvar; > > > > > > tempvar = 10 * (getchar(faktor,11) - 48); > > > > > > kafaktor = kafaktor + tempvar; > > > > > > tempvar = (getchar(faktor,12) - 48); > > > > > > kafaktor = kafaktor + tempvar; > > > > > > > > > > > > return kafaktor; > > > > > > } > > > > > > > > > > > > ------------------------------------------------------------- > > > > > > > > > > > > Jemand 'ne logische Erklärung dafür? > > > > > > > > > > > > Ein fast wahnsinnig gewordener > > > > > > Jörg
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB