首页 新闻 会员 周边 捐助

问问C#中,关于指针类型强制转换的问题

0
悬赏园豆:10 [已解决问题] 解决于 2012-07-19 21:31

《C#高级编程》中说:“C#是用于64位处理器的,一个地址占用8个字节。因此在这样的系统上,把指针强制转换为非ulong类型,就可能导致溢出错误”

——弱弱地问一问,此时转换为long类型不可以吗?看不出会有什么错误。

芬陀利华的主页 芬陀利华 | 初学一级 | 园豆:106
提问于:2012-07-05 15:21
< >
分享
最佳答案
0

ulong的最大值比long的最大值要大。这很容易理解,因为同样的位数,long需要1位来保存符号,而ulong不需要。因此把ulong转成long,有可能变成负值。

收获园豆:10
水牛刀刀 | 大侠五级 |园豆:6350 | 2012-07-05 17:11
其他回答(2)
0

ulong 是32 位,强制转换会溢出。

Launcher | 园豆:45050 (高人七级) | 2012-07-05 18:03

ulong是64 bit

支持(0) 反对(0) 水牛刀刀 | 园豆:6350 (大侠五级) | 2012-07-05 18:24

@水牛刀刀: 

64位系统下:unsigned long 32位,unsigned long long 64位(标准 C++ )。

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2012-07-05 18:30
0

我也想知道这个问题

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-07-06 10:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册