将 ulong 从 C++ 转移到 C#
Shift ulong from c++ to c#
我正在将应用程序从 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
。你能帮我理解和解决问题吗?
非常感谢。
错误是:
error CS0019: Operator '&' cannot be applied to operands of type
'long' and 'ulong'.
不是ulong
和ulong
要让它工作 d
应该是类型 ulong
:
ulong d = 1158552107947655168;
我正在将应用程序从 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
。你能帮我理解和解决问题吗?
非常感谢。
错误是:
error CS0019: Operator '&' cannot be applied to operands of type 'long' and 'ulong'.
不是ulong
和ulong
要让它工作 d
应该是类型 ulong
:
ulong d = 1158552107947655168;