V následujícím kódu jsem na test nastavil hodnotu čísla na 196611.
Nyní chci vymazat první dva byty, respektive, mi stačí vymazat bit 17 a 18 zleva.
Jsou to ty dvě jedničky zastupující číslo 196608.
Když provedu LSB |= m[i] && ~0xFFFF0000;
tak LSB má být 3 a dostávám 1.
for (i = 0; i<11; )
{
/////////////////000000001111111100000000
m[i] = 0b000000110000000000000011; // 196611
m[i+1] = 0b000000110000000000000011; // 196611
LSB <<= 32;
LSB |= m[i] && ~0xFFFF0000; // 16 bits LSB
LSB <<= 16;
LSB |= m[i+1] && ~0xFFFF;
i += 2;
}
Co dělám špatně?