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

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
Ich nutze:
C-Control II Unit, CC2-Application-Board, eigenes Board, OSOPT V3.0
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)