C#关于ushort的用法

inty=65;intv=1;ints=y+v;为什么运行正确,而以下这段就运行不正确呢?提示得强制类型转换ushorty=65;ushortv=1;ushorts=y+... int y = 65;
int v = 1;
int s = y+v;
为什么运行正确,而以下这段就运行不正确呢?提示得强制类型转换
ushort y = 65;
ushort v = 1;
ushort s = y+v;

改一下成
ushort y = 65;
ushort v = 1;
ushort z = (ushort)(y + v);
就可以了。这是为什么呢?
展开
 我来答
百度网友0b84615
推荐于2017-11-23 · TA获得超过140个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:151万
展开全部
ushort y = 65;
ushort v = 1;

y和v都是无符号整数, 其相加的结果是整形而非无符号整形,
因为 两个无符号整形的数相加如果返回值还是无符号整形有可能出现越界的问题。所以y+v 的返回值是整形的,

上面代码还可以改成 int z = y+v
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式