回 帖 发 新 帖 刷新版面

主题:关于算术运算问题

谁能帮我解释下,c为什么会等于65535:   
.
ushort a =1:

short b =-2

ushort c=a+b

运行结果将使c 等于65535

回复列表 (共3个回复)

沙发

首先,a+b->c需要强制转换,还要关闭溢出检查,否则编译错误,C#里面要注意
65535是溢出运算的结果,a + b作为int级别运算

这种溢出运算一般情况下没什么意义,并且应当尽可能避免
lz不需要在这种问题上浪费太多时间

板凳

ushort a =1:

short b =-2

ushort c=a+b//这种写法是错误的,请看msdn:
两个ushort或short都不能这样写,何况是ushort+short

3 楼

谢谢 我是初学者 嘿嘿

我来回复

您尚未登录,请登录后再回复。点此登录或注册