114 votes

Que fait value & 0xff en Java ?

J'ai le code Java suivant :

byte value = 0xfe; // corresponds to -2 (signed) and 254 (unsigned)
int result = value & 0xff;

Le résultat est 254 lorsqu'il est imprimé, mais je n'ai aucune idée du fonctionnement de ce code. Si l'opérateur & est simplement au niveau des bits, alors pourquoi n'aboutit-il pas à un octet et à la place à un entier ?

0voto

manish kumar Points 1

Dans le système au format 32 bits, la valeur hexadécimale 0xff 00000000000000000000000011111111 255(15*16^1+15*16^0) en décimale. et l'opérateur & bitwise masque les 8 mêmes bits que dans le premier opérande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X