首页 新闻 会员 周边 捐助

请教C# 在经符号扩展的操作数上使用了按位“或”运算符;请考虑首先强制转换为较小的无符号类型

0
[待解决问题]

sbyte formatInformationValue = (sbyte)(ec << 3 | maskNumber);

ec是int

maskNumber是 sbyte

出现一个警告:

在经符号扩展的操作数上使用了按位“或”运算符;请考虑首先强制转换为较小的无符号类型

请教这是为什么?

时光刺客的主页 时光刺客 | 初学一级 | 园豆:60
提问于:2015-01-05 15:50
< >
分享
所有回答(2)
0

类型不匹配,编译器给的警告,按照警告的提示结合你的需求修改即可。

Launcher | 园豆:45050 (高人七级) | 2015-01-05 16:03
0

数据类型的问题,这样试试:

sbyte formatInformationValue = (sbyte)((uint)ec << 3 | maskNumber);

| 园豆:332 (菜鸟二级) | 2015-01-05 16:03

试过了不行,还是有警告。至少我这里(.net framework 4.5.1)试了不行。

支持(0) 反对(0) 时光刺客 | 园豆:60 (初学一级) | 2015-01-05 18:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册