-----------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?
Partager