首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

ushort越界有关问题,求教育

2012-10-20 
ushort越界问题,求教育求教育:C# codeushort s1 65534 ushort s2 4 s1 s1 + s2 s2 s1 - s2 s1

ushort越界问题,求教育
求教育:

C# code
ushort s1 = 65534; ushort s2 = 4; s1 = s1 + s2; s2 = s1 - s2; s1 = s1 - s2;
 
第一次,s1的值变为2;
  s2的值变为65534;
第二次,s1的值变为4;
也就是实现了交换,但是在第一次的时候,为什么没有越界报错,65538不是已经超出了ushort的上限吗,并且程序正确的实现了数据交换。



[解决办法]
算数运算中是不会报移除错误的,溢出部分从新开始。
要显示的使用checked关键字检测移除。
C# code
checked{     ushort s1 = 65534;     ushort s2 = 4;     s1 = s1 + s2;     s2 = s1 - s2;     s1 = s1 - s2;} 

热点排行