-1

我正在将应用程序从 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。你能帮我理解和解决问题吗?

非常感谢。

4

1 回答 1

4

错误是:

错误 CS0019:运算符“&”不能应用于“long”和“ulong”类型的操作数。

不是ulongulong

为了使它工作d应该是类型ulong

ulong d = 1158552107947655168;
于 2018-05-08T10:35:58.357 回答