《C#高级编程》中说:“C#是用于64位处理器的,一个地址占用8个字节。因此在这样的系统上,把指针强制转换为非ulong类型,就可能导致溢出错误”
——弱弱地问一问,此时转换为long类型不可以吗?看不出会有什么错误。
ulong的最大值比long的最大值要大。这很容易理解,因为同样的位数,long需要1位来保存符号,而ulong不需要。因此把ulong转成long,有可能变成负值。
ulong 是32 位,强制转换会溢出。
ulong是64 bit
@水牛刀刀:
64位系统下:unsigned long 32位,unsigned long long 64位(标准 C++ )。
我也想知道这个问题