如果我尝试使用BitConverter,它需要一个字节数组,我没有。我有一个Int32,我想将它转换为UInt32。
在C ++中没有问题。
答案 0 :(得分:19)
只需要一个简单的演员表。由于这样做可能会失去精确度,因此转换是明确的。
long x = 10;
ulong y = (ulong)x;
答案 1 :(得分:7)
尝试:
Convert.ToUInt32()
答案 2 :(得分:1)
要将长片转换为ulong,只需将其转换为:
long a;
ulong b = (ulong)a;
如果是负数,C#不会抛出异常。
答案 3 :(得分:1)
Int32 i = 17;
UInt32 j = (UInt32)i;
编辑:问题不清楚你是长期还是国际?
答案 4 :(得分:1)
鉴于此功能:
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"
正如您所看到的,这些位被完全保留,即使是负值也是如此。