Фрагмент кода 1:
n = 32;
printf( "n = %d\n", n );
m_mask = ( (uint32_t)1 << n ) - 1;// << ( 32 - n );
printf("mask = %x\n", m_mask);
Результат:
n = 32
mask = 0
Фрагмент кода 2:
n = 32;
// printf( "n = %d\n", n );
m_mask = ( (uint32_t)1 << n ) - 1;// << ( 32 - n );
printf("mask = %x\n", m_mask);
Результат:
mask = ffffffff
Собирается код g++ -O2. Есть идеи куда копать?