Når du skriver 0xFF ser compileren at den højeste bit (sign bitten) er sat. og da den værdi skal udvides til en long bliver den sign-bit gentaget i alle de 56 højere bit der er i en long eg: 0xFF bliver til 0xFFFFFFFFFFFFFFFFL så der sker ingenting somhelst ved at du lave bitwise & med den værdi. longVar & 0xFF == longVar brug istedet 0x0FF så den øverste bit ikke er sat. så får du 0x0FF bliver til 0x00000000000000FFL og det er sandsynligvis det du vil have. longVar & 0x0FF == deNederste8BitAf( longVar )
undskyld min lange svartid.. Jeg må indrømme, at jeg burde vide mere om det her "bit-rytteri", end jeg gør.. Dog var arne v´s første kommentarer dem som hjalp mig mest. Den fejl jeg gjorde var, at bruge den logiske i stedet for den bitvise AND. Så derfor var:
long l = 1234; l = l & 0xFF:
løsningen på mit problem. Giv mig lige et svar Arne.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.