Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:如何将long转换为ulong_C#_Long Integer_Ulong - Fatal编程技术网

C#:如何将long转换为ulong

C#:如何将long转换为ulong,c#,long-integer,ulong,C#,Long Integer,Ulong,如果我尝试使用位转换器,它需要一个字节数组,我没有。我有一个Int32,我想把它转换成UInt32 在C++中没有问题。 < P>一个简单的铸造是你所需要的。因为这样做可能会失去精度,所以转换是显式的 long x = 10; ulong y = (ulong)x; 要将long转换为ulong,只需将其强制转换为: long a; ulong b = (ulong)a; 如果是负数,C将不会抛出异常。请尝试: Convert.ToUInt32() 编辑:问题不清楚您是否有long或int

如果我尝试使用位转换器,它需要一个字节数组,我没有。我有一个Int32,我想把它转换成UInt32


<>在C++中没有问题。

< P>一个简单的铸造是你所需要的。因为这样做可能会失去精度,所以转换是显式的

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

要将long转换为ulong,只需将其强制转换为:

long a;
ulong b = (ulong)a;
如果是负数,C将不会抛出异常。

请尝试:

Convert.ToUInt32()
编辑:问题不清楚您是否有long或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"

正如您所看到的,即使对于负值,位也被完全保留下来。

有些困惑您在这里要问的是什么,buddy-long、字节数组和int-您能详细说明一下吗?我想John指的是“old”C或C++的长度是32位宽。我是说他习惯性地引用它。我不相信这会带来一个负值的例外,但不会是你所期望的。这里(笔记本电脑)没有.net,或者会对其进行测试。不会,但第一位将被解释为最高有效位,而不是符号位。它不会抛出。你应该考虑修改你的答案,否则会误导人。已更新。如果抛出或未抛出,则为编译器设置(生成/高级/检查算术溢出/下溢)。为了安全起见,您应该总是像
ulong b=unchecked((ulong)a)
这样包装它,这难道不可能让大底片溢出吗?您可以使用
取消选中的
来代替截断:
    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"