que fait cette fonction ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| private void Fonction()
{
BitUnion union = new BitUnion();
int index = 0;
int num2 = 0;
for (int i = 0; i < 100; i++) //boucle de 0 a 99
{
index = this.nMap[i] / 0x20; //met dans index le quotien
num2 = this.nMap[i] % 0x20; // met dans num2 le modulo
if ((this.m_bitunion.m_bits[index] & ((uint)(((long)1L) << num2))) != 0)
{
index = i / 0x20;
num2 = i % 0x20;
union.m_bits[index] |= (uint)(((long)1L) << num2);
}
else
{
index = i / 0x20;
num2 = i % 0x20;
union.m_bits[index] &= ~((uint)(((long)1L) << num2));
}
}
this.m_bitunion = union;
} |
-----------------
Sachant que nMap est un tableau de 100 entiers mélangés
que la classe BitUnion contient une variable m_bit.[] de type entier et de taille 4
exemple:
m_bits.[0] = 0x00000022
m_bits.[1] = 0x00000042
m_bits.[2] = 0x00000542
m_bits.[3] = 0x00006544
Est ce qu'il fait un ou logique et un décalage à gauche ou l'inverse ?
une inversion de bit avant le ET logique ?