Que fait cette fonction?

sergio -  
loupius Messages postés 789 Statut Membre -
Bonjour,

Qui peut me dire ce que fait cette fonction?

public static Int32 Merge(ushort value1, ushort value2)
{
return (Int32)(value1 << 16 | value2);
}

value1 et value2 sont des mots de 8bits je pense

le signe << c'est bien pour décaler les bits de 16 positions vers la gauche?
le signe | est équivalent au 'ou' logique?

Je ne comprend pas bien...

Merci d'avance de votre aide,

Sergio

A voir également:

1 réponse

francis
 
Salut,

Pour savoir la taille de "ushort", ça dépend du compilateur que t'utilise, mais je pense que c'est 16 bits.

Après

(Int32)(value1 << 16 | value2);

C'est ce que tu dis : ça décale value1 de 16 bits a gauche, ça fait un OU logique avec value1, et ça caste le tout en mot de 32 bits
0
loupius Messages postés 789 Statut Membre 148
 
Tout à fait.
Peut-être aurait-il été plus judicieux d'écrire ainsi la fonction:
public static Int32 Merge(ushort poidsFort, ushort poidsFaible) 
{ 
  return (Int32)(poidsFort << 16 | poidsFaible);  
}
Bonne continuation.
0