, , . :
bool data[64] = {...};
64 (512 ) . 8 (64 ) :
uint64_t data = ...;
, , DRAM, , , - , , 64- , - 64- , , , . , , 1/8 , .
, - , :
enum Flags
{
flag_selected = 1 << 0,
flag_hidden = 1 << 1,
flag_removed = 1 << 2,
flag_hovering = 1 << 3,
flag_minimized = 1 << 4,
...
};
uint8_t flags = flag_selected | flag_hovering;
, , , :
// Check if the element is hidden or removed.
if (flags & (flag_hidden | flag_removed))
{
...
}
bitwise and, flag_hidden flag_removed , .
:
bool data[64];
, , 64 , - . , :
bool all_set = true;
for (int j=0; j < 64; ++j)
{
if (!data[j])
{
all_set = false;
break;
}
}
if (all_set)
{
...
}
, :
uint64_t data = ...;
if (data == 0xffffffffffffffff)
{
...
}
64 , 64- . SIMD 64 SIMD.
, , . , , :
int count = 0;
for (int j=0; j < 64; ++j)
count += data[j];
, , :
uint64_t data = ...;
const int count = __popcnt64(data);
. , , 64 , true.
. - :
x = pow(2, n);
n - , :
x = 1 << n;
, , intrinsics pow, , , , C ++, , , , n .
, , . , :
x = n % power_of_two;
... power_of_two - , . :
x = n & (power_of_two - 1);
, ( ). , , . , 16 0b10000. , : 0b1111 , n % 16.
, .. , , 16x16, 32x32, 64x64, 256x256 .. , .
, , , , . .
- . , voxel Atomontage, , , DRAM, , , . , , 8 true/false, .