Seite 1 von 1

Robo Pro Bit-Operationen

Verfasst: 17 Sep 2017, 22:41
von Severin8b
Hallo!

Mir ist vorhin beim Basteln mit I²C in RoboPro aufgefallen, dass ich die Zahl B1000 0000 0000 0000 (also -32768) nicht senden kann. Habe dann in der Beschreibung der Variablen genauer hingesehen und bemerkt dass der Bereich nur von -32767..32767 ist.
Per Bitshift von 16384 (B0100 0000 0000 0000) um eins nach Links gibt eine Variable "?" aus. verschiebe ich "?" wieder nach Rechts erhalte ich wieder 16384. Ebenso "?" + 1 = -32767
Warum ist -32768 dann überhaupt ausgeschlossen wenn es doch funktioniert? Da muss was dran gemacht werden..

Viele Grüße
Severin

Re: Robo Pro Bit-Operationen

Verfasst: 18 Sep 2017, 19:47
von ROBOProEntwickler
Hallo Severin,

ROBOPro verwendet -32768 für ungültig. Das ist im Kapitel 8.8.4 zu Bit Operatoren auch so beschrieben. Der Wert -32768 wird immer als ? angezeigt. Man kann den Wert aber wie im Kapitel 8.8.4 beschrieben durchaus eingeben und auch an I2C schicken.

Die Operatoren haben in Level 5 eine Option "nicht auf Überlauf prüfen". Wenn diese Option gesetzt ist wir der Wert -32768 von den Operatoren nicht besonders behandelt und + und - können überlaufen. Die Bitoperatoren haben aber ohnehin keine Überlaufbehandlung, so dass das da keinen Unterschied macht.

Viele Grüße,

ROBOProEntwickler