Robo Pro Bit-Operationen

Hier habt Ihr die Möglichkeit direkt mit dem fischertechnik Team in Kontakt zu treten
Here you have the Possibility to get in direct contact with the fischertechnik-Team

Moderator: fischertechnik Mitarbeiter

Forumsregeln
Bitte beachte die Forumsregeln!

In dieser Unterkategorie können nur fischertechnik-Mitarbeiter und Moderatoren antworten!
Antworten
Severin8b
Beiträge: 29
Registriert: 02 Nov 2010, 01:40

Robo Pro Bit-Operationen

Beitrag von Severin8b » 17 Sep 2017, 22:41

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

ROBOProEntwickler
Beiträge: 14
Registriert: 28 Dez 2012, 14:56

Re: Robo Pro Bit-Operationen

Beitrag von ROBOProEntwickler » 18 Sep 2017, 19:47

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

Antworten