2010-06-02 6 views
2

J'essaie de convertir un int en un byte en cours de traitement 1.0.9.traitement: convertir int en octet

C'est l'extrait de code que je travaille avec:

byte xByte = byte(mouseX); 
byte yByte = byte(mouseY); 
byte setFirst = byte(128); 
byte resetFirst = byte(127); 

xByte = xByte | setFirst; 
yByte = yByte >> 1; 
port.write(xByte); 
port.write(yByte); 

Selon l'API de traitement, cela devrait fonctionner, mais je continue à avoir une erreur à xByte = xByte | setFirst; qui dit:

cannot convert from int to byte 

J'ai essayé de convertir 128 et 127 en leurs valeurs hexadécimales respectives (0x80 et 0x7F), mais cela n'a pas fonctionné non plus. J'ai essayé tout ce qui est mentionné dans l'API ainsi que d'autres blogs, mais j'ai l'impression de manquer quelque chose de très trivial.

J'apprécierais toute aide.

Merci.

Répondre

1

Je n'ai jamais utilisé le traitement auparavant, mais il est possible que l'opérateur | renvoie un entier quel que soit le type des arguments. Essayez de changer la ligne problématique à

xByte = byte(xByte | setFirst);

+0

Merci cela a parfaitement fonctionné. J'aurais pensé que le traitement retournerait un octet pour les comparaisons d'octets, cependant. – inspectorG4dget