主题:关于算术运算问题
putu
[专家分:0] 发布于 2008-01-25 09:29:00
谁能帮我解释下,c为什么会等于65535:
.
ushort a =1:
short b =-2
ushort c=a+b
运行结果将使c 等于65535
回复列表 (共3个回复)
沙发
jzyray [专家分:20610] 发布于 2008-01-25 12:35:00
首先,a+b->c需要强制转换,还要关闭溢出检查,否则编译错误,C#里面要注意
65535是溢出运算的结果,a + b作为int级别运算
这种溢出运算一般情况下没什么意义,并且应当尽可能避免
lz不需要在这种问题上浪费太多时间
板凳
toicq2002 [专家分:180] 发布于 2008-01-25 21:53:00
ushort a =1:
short b =-2
ushort c=a+b//这种写法是错误的,请看msdn:
两个ushort或short都不能这样写,何况是ushort+short
3 楼
putu [专家分:0] 发布于 2008-01-28 00:06:00
谢谢 我是初学者 嘿嘿
我来回复