Я читал о специфическом суффиксе Microsoft "i64" для целочисленных констант. Я хочу сделать сдвиг без изменений в ULONGLONG. ULONGLONG bigNum64 = 0x800000000000000i64 >> myval;
В нормальном C я бы использовал суффикс "U", например. аналогичная 32-битная операция будет
ULONG bigNum32 = 0x80000000U >> myval;
Я НЕ хочу, чтобы расширение расширения 2-го дополнения распространялось через высокие бит. Я хочу сдвиг UNSIGNED на 64-битном const-номере. Я думаю, что мое первое утверждение будет делать правый SIGNED.
Я пробовал 0x800000000000000i64U
и 0x800000000000000u64
, но получил ошибки компилятора.