Re: if-Abfrage bei Datentyp long Kategorie: Programmierung (von Thomas - 11.11.2004 21:54) | ||
Als Antwort auf Re: if-Abfrage bei Datentyp long von André H. - 11.11.2004 21:40 | ||
| ||
Hallo Andre, sorry, man sollte Beispiele immer per Copy&Paste übertragen und nicht abtippen. Bitte probieren es mit a=0b11111111111111111111111111111111; b=0b10000000000000000000000000000000; nochmals aus (vorher war es ja im Wertebereich eines int - habe falsch abgetippt). Jetzt wirst Du das Problem direkt nachvollziehen können. Danke für Deinen Support. Beste Grü�e Thomas > Hallo Thomas, > > > eine Frage zur If-Abfrage: Hat diese Probleme mit dem Datentyp long? > > Ich wei� nicht, wo das Problem sein soll. > Ich habe diese Zeilen sicherheithalber nocheinmal sowohl im Simulator, als auch > in der CC2 getestet. Es funzt alles so, wie es soll. > > > > > long a,b,r; > > > > a=0b1111111111111111; > > b=0b1000000000000000; > > > > r = a and b; > > // a and b ist ungleich Null > > // r ist ungleich Null > > > > if a and b { > > // läuft hier aber nicht rein?? > > } > Bei meinen Tests werden hier korrekt die Anweisung If-bedingt ausgeführt. > > > if r { > > // läuft hier aber nicht rein?? > > } > > Auch hier wird es richtig ausgeführt, da r ungleich 0, somit also true, ist. > > > if r != 0 { > > // hier funktioniert es??!! > > } > > Dies mu� auch funzen. Dies ist im Prinzip fast dasselbe, wie die vorherige If-Abfrage, > nur, da� hier ein echter True(-1) erzeugt wird, sobald mindestens ein Bit High ist. > > > > r = 1; > > > > if r { > > //mit "kleinem" r funktioniert es??!! > > } > > > Mit "klein" beziehst Du Dich auf den Wert. Natürlich mu� das funzen. ;-) > > Und hier noch das abgeänderte Testproggie, um es direkt in der CC2 zu testen: > long a,b,r; > > thread main > { > a=0b1111111111111111; > b=0b1000000000000000; > > r = a and b; > // a and b ist ungleich Null > // r ist ungleich Null > > if a and b > {// funzt > plm.beep(5); > sleep 250; > plm.beep(-1); > sleep 500; > } > > if r > {// funzt > plm.beep(5); > sleep 250; > plm.beep(-1); > sleep 500; > } > > if r != 0 > {// funzt > plm.beep(5); > sleep 250; > plm.beep(-1); > sleep 500; > } > > r = 1; > > if r > {// funzt > plm.beep(5); > sleep 250; > plm.beep(-1); > sleep 500; > } > quit 1; > } > Auf der betreffenden Unit läuft z.Zt. OSOPT V3.1beta. Es ist aber in dieser Hinsicht > identisch zu OSOPT V3.0 und OSOPT_V2. > > MfG André H. > | ||
Antwort schreiben Antworten: Re: if-Abfrage bei Datentyp long (von André H. - 11.11.2004 23:10) Re: if-Abfrage bei Datentyp long (von Thomas - 12.11.2004 0:09) Re: if-Abfrage bei Datentyp long (von André H. - 19.11.2004 11:51) Re: if-Abfrage bei Datentyp long (von krassos - 12.11.2004 12:46) |