Ik ben hier op school bezig met een project, waarin je oa van een aantal (afstands)sensoren data krijgt (handelt collega af in stukje C op chip). Via een com-poort krijg ik de gegevens binnen en moet ik die ook weer terugsturen.
Het probleem hierbij is, dat een van de waarde die heen en weer gestuurd worden een byte is, met waarden van 0-255 (unsigned dus). Als ik hiervoor de gewone 'java byte' gebruik, krijg ik hier 'uiteraard' een verkeerde negatieve waarde voor. Ik kan natuurlijk een leuk algoritme gaan schrijven dat alles weer omzet, maar is er niet een nettere manier in de vorm van een 'unsigned byte' look-a-like?
Ik weet intussen dat..
En ik heb al ontdekt dat de java char, niet zoals in c(++) een byte representeerd, maar (unicode) 2 bytes. (zie ook hier. In dit topic staat ook over chars <-> bytes:
Het probleem hierbij is, dat een van de waarde die heen en weer gestuurd worden een byte is, met waarden van 0-255 (unsigned dus). Als ik hiervoor de gewone 'java byte' gebruik, krijg ik hier 'uiteraard' een verkeerde negatieve waarde voor. Ik kan natuurlijk een leuk algoritme gaan schrijven dat alles weer omzet, maar is er niet een nettere manier in de vorm van een 'unsigned byte' look-a-like?
Ik weet intussen dat..
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/ctrans_9wkf.asp)Java does not support unsigned data types except for char, which is a 16-bit unsigned integer. Methods that accept or return other unsigned data types cannot be used from Java.
En ik heb al ontdekt dat de java char, niet zoals in c(++) een byte representeerd, maar (unicode) 2 bytes. (zie ook hier. In dit topic staat ook over chars <-> bytes:
Is er een andere vorm van data waar ik als een unsigned byte mee kan werken?Als je gaat casten moet je altijd oppassen voor dit soort dingen. De upcast van byte naar char zal wel goed gaan, maar de downcast van char naar byte. Oei oei oei....
Nogmaal een char is geen byte.
Een char is een unsigned short, en da's twee bytes.
Localhost is where the heart is