Я понимаю, что в C/С++ побитовые операторы должны быть независимыми от конца и вести себя так, как вы ожидаете. Я хочу убедиться, что я действительно получаю самые значимые и наименее значимые слова из 64-битного значения и не беспокоюсь о контенте машины. Вот пример:
uint64_t temp;
uint32_t msw, lsw;
msw = (temp & 0xFFFFFFFF00000000) >> 32;
lsw = temp & 0x00000000FFFFFFFF;
Будет ли это работать?