如果我有BitConverter尝试,它需要一个字节数组,我没有that.I拥有的Int32,我想将其转换为UInt32的。

在C ++有与没有问题。

有帮助吗?

解决方案

一个简单的转换是你所需要的。因为它是可能失去精度这样做,转换明确。

long x = 10;
ulong y = (ulong)x;

其他提示

尝试:

Convert.ToUInt32()
Int32 i = 17;
UInt32 j = (UInt32)i;

编辑:问题是,目前还不清楚是否有很长或int

鉴于这种功能:

string test(long vLong)
{
    ulong vULong = (ulong)vLong;
    return string.Format("long hex: {0:X}, ulong hex: {1:X}", vLong, vULong);
}

和这种用法:

    string t1 = test(Int64.MinValue);
    string t2 = test(Int64.MinValue + 1L);
    string t3 = test(-1L);
    string t4 = test(-2L);

这将是结果:

    t1 == "long hex: 8000000000000000, ulong hex: 8000000000000000"
    t2 == "long hex: 8000000000000001, ulong hex: 8000000000000001"
    t3 == "long hex: FFFFFFFFFFFFFFFF, ulong hex: FFFFFFFFFFFFFFFF"
    t4 == "long hex: FFFFFFFFFFFFFFFE, ulong hex: FFFFFFFFFFFFFFFE"

正如你可以看到的位被完整地保留下来,甚至负值。

要长转换为ulong,则简单地将其丢:

long a;
ulong b = (ulong)a;
如果它是一个负数

C#不会抛出异常。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top