主题:关于算术运算问题
			 putu
				 [专家分:0]  发布于 2008-01-25 09:29:00
 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
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
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
putu [专家分:0]  发布于 2008-01-28 00:06:00				
				谢谢 我是初学者 嘿嘿
							 
									
			
我来回复