Кажется, что я должен иметь возможность выполнять сдвиг бит в C/C++ более чем на 32 бита, если левый операнд сдвига длинный. Но это, похоже, не работает, по крайней мере, с компилятором g ++.Как бить сдвиг длиннее на 32 бита?
Пример:
unsigned long A = (1L << 37)
дает
A = 0
, который не то, что я хочу. Я что-то упустил или это просто невозможно?
-J
Long 32 бита на большинстве архитектур .... –
Используйте 'LL' вместо того, чтобы просто' L' –