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
Robo Pro Bit-Operationen
Moderator: fischertechnik Mitarbeiter
Forumsregeln
Bitte beachte die Forumsregeln!
In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
Bitte beachte die Forumsregeln!
In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
-
- Beiträge: 14
- Registriert: 28 Dez 2012, 14:56
Re: Robo Pro Bit-Operationen
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
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