【发布时间】:2015-04-21 18:00:23
【问题描述】:
我在 C# 中有以下代码:
ulong value1 = 0x11234;
long value2 = (long) value1;
Console.WriteLine(value1);
Console.WriteLine(value2);
产生:
70196
70196
这不应该有所不同,因为 70196 在转换为 long 时会是负数吗?
[强制转换是否自动更改按位值?]
【问题讨论】:
-
为什么你认为它是一个负数? (不是我的反对票)
-
@Hele 网上有很多例子可以将 ulong 转换为 long 做谷歌搜索
-
@sayse 因为这些位对于 ulong 和 long 意味着不同的东西
-
@Hele:不,他们没有。 2^63 远大于此。
-
@MethodMan 我找到了很多资源来进行转换,我的问题是为什么这段特定的代码会这样。
标签: c# type-conversion