Fonctionnement bit de signe, décalage
Bonjour,
J'aurai besoin d'aide pour la compréhension d'un code manipulant des bits. Le but du code est de récupérer le quartet de poids fort d'un byte (pour décoder du BCD). Ce code est générer automatiquement par un IDE mais j'ai un doute sur sa complexité:
Code:
1 2 3
|
byte b1 = ....;
byte b2 = (byte) ((((b1 & (byte) 0xF0) & (short) 0x00FF) >> (byte) 4) & (byte) 0x0F); |
ne peut-on pas écrire simplement:
Code:
1 2
|
byteb2 = ((b1 & (byte) 0xF0) >> (byte) 4) & (byte) 0x0F; |
??
voir même
Code:
1 2
|
byteb2 = (b1 >> (byte) 4) & (byte) 0x0F; |
Ou alors il y a vraiment une embrouille avec le bit de signe dans certain cas ?