Сдвиг Улонга с с ++ на с #

Я преобразовываю приложение из C в C #, теперь я встретил ошибку в преобразовании смены с ulong значение.

Исходный код на C ++:

unsigned long long dat = (d >> dat_shift) & (0xffffffffffffffff >> (64 - data_bits_first_frame));

В C #, я думаю, должно быть что-то вроде этого:

long d = 1158552107947655168;
int dat_shift  = 8;
int data_bits_first_frame = 0;
ulong dat = (d >> dat_shift) & (0xffffffffffffffff >> (64 - data_bits_first_frame));

Во время выполнения я получаю ошибку CS0019 Operator '&' cannot be applied to operands of type 'ulong' and 'ulong',

Причина в 0xffffffffffffffff, Можете ли вы помочь мне понять и решить проблему?

Большое спасибо.

-1

Решение

Ошибка:

ошибка CS0019: оператор ‘&не может быть применен к операндам типа
«длинный» и «ulong».

не ulong а также ulong

Чтобы это работало d должен быть типа ulong:

ulong d = 1158552107947655168;
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]