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

问题描述

在一个类中,有以下代码行,因为代码太长,省去其他部分。internalshortbi_buf;internalintbi_valid;internalvoidsend_bits(intvalue,intlength){intlen=length;unchecked{if(bi_valid>(int)Buf_size-len){//intval=value;//bi_buf|=(val<<bi_valid);bi_buf|=(short)((value<<bi_valid)&0xffff);//put_short(bi_buf);pending[pendingCount++]=(byte)bi_buf;pending[pendingCount++]=(byte)(bi_buf>>8);bi_buf=(short)((uint)value>>(Buf_size-bi_valid));bi_valid+=len-Buf_size;}else{//bi_buf|=(value)<<bi_valid;bi_buf|=(short)((value<<bi_valid)&0xffff);bi_valid+=len;}}}提示有错误:严重性代码说明项目文件行错误CS0675在经符号扩展的操作数上使用了按位“或”运算符;请考虑首先强制转换为较小的无符号类型红色代码这两行都报错,VS2015进行编译出现的

解决方案

本帖最后由 HappyQQ 于 2015-09-08 19:46:56 编辑
解决方案二:
这只是警告,不是错误,为什么原因看上面的连接里面
解决方案三:
VS2015直接是错误,并非警告,所有设置都是VS2015默认设置……
解决方案四:
VS2013.net4.5连警告都没有我怀疑楼主你贴出的代码是错的
解决方案五:
我用2015实际测试过,估计你的代码哪里有设定将Warning级别升级为Error级别吧
解决方案六:
代码标记为unchecked是几个意思?
解决方案七:
你还是找找被你精简掉的代码里面,是否有跟全局变量同名,但类型不同的局部变量吧具体在你出错的代码行,鼠标右键,转到定义,看变量到底是在哪里定义的,什么类型
解决方案八:
都位与ffff了,强转shot的意义是什么,另外我这里不报错
解决方案九:
装了一个vs2013,编译的时候是没有任何问题的,结贴了。

时间: 2025-01-25 18:41:39

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

tomcat启动报错-启动web项目,导致tomcat启动不了,内存泄露,请大家帮忙下这个问题,很急很急。

问题描述 启动web项目,导致tomcat启动不了,内存泄露,请大家帮忙下这个问题,很急很急. Oct 21, 2015 3:50:39 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart Oct 21, 2015 3:50:39 PM org.apache.catalina.core.StandardContext startInternal SEVERE: Context

tpinit报错,没有安装tuxedo的机器上客户端程序如何去连接tuxedo服务器呢???

问题描述 在已经安装了tuxedo8.1的机器上运行客户端程序,完全正确,vc编写的客户端程序直接去连接tuxedo服务器,可在没有安装tuxedo的机器上客户端程序tpinit就要报错,tperrorno=8.我已经拷贝了libwsc.dll,wtuxws32.dll等DLL.分数有限,会贡献出来所有积分,望高手不吝赐教! 解决方案 本帖最后由 hobaobao 于 2012-01-29 15:52:32 编辑解决方案二:怎么没人回复啊?解决方案三:各位大哥,应该有人遇到过这种情况啊,怎么都没

PHPMailer发送邮件报错Msg:stream_socket_enable_crypto():

我的PHPMailer发送邮件代码  代码如下 复制代码 header("Content-type:text/html;charset=utf-8"); include('phpmailer/class.phpmailer.php'); include('phpmailer/class.smtp.php'); $mail = new PHPMailer();     $mail->IsSMTP();                                      //

ios-iOS8 支付宝跳转会报错闪退

问题描述 iOS8 支付宝跳转会报错闪退 使用新版的支付宝sdk,支持64位的,但在使用的时候,如果有装支付宝APP的话,跳转会报错闪退: Assertion failed: (CGFloatIsValid(x) && CGFloatIsValid(y)) function void CGPathMoveToPoint(CGMutablePathRef const CGAffineTransform * CGFloat CGFloat) file Paths/CGPath.cc line

win2003自动启动-Windows 2003 SP1报错,提示:原因代码: 0x8000005 ~求助

问题描述 Windows 2003 SP1报错,提示:原因代码: 0x8000005 ~求助 Windows 2003 SP1报错,提示:原因代码: 0x8000005 ~求助 系统会经常自动重新启动!请高手解决 急求助! 解决方案 查看系统日志,分析具体错误的模块,错误信息

MDaemon日志报错:550 aa@*.com must check for new mail first

最近在smtp入的日志看到一个报错,跟大家分享一下.截取了其中一段日志,报错信息如下: 该vin..的用户使用bis绑定了自己的企业邮局.发送邮件是报错550 vin*@*.cn  check for new mail first,这个意思是说请检查一下是否有新邮件.看到这个报错解释,就应该立刻想到mdaemon的用户验证方式里有一个pop先于smtp验证,这种验证方式用简单的语言表达就是:在发送邮件之前,先要进行收邮件,默认有效时间是5分钟.取消这个具体操作:安全---安全设置---pop先于

64位系统php运行报错

问题一:php运行报错:1% 不是有效的 win32 应用程序 php环境配置完毕后,运行html成功,但运行php就报错,错误提示是"1% 不是有效的 win32 应用程序",英文报%1 is not a valid Win32 application.第一次碰到这样的问题,经过搜索和试验,问题终于解决. 报错原因:由于在64位操作系统里,默认配置下,IIS工作在64位模式下,这会让许多32位的应用不能正常工作. 解决方法: 1)进入命令提示符:开始->运行 cmd 2)执行脚

ThinkPad E431&amp;E531 开机出现0190报错

  ThinkPad E431/E531产品,若在使用电源适配器时启动正常,但单接电池启动时出现以下0190报错,可通过升级产品BIOS来解决,升级后的BIOS请不低于1.14版本. 如果您使用的是Windows操作系统,请点击这里下载目前最新版的BIOS; 如果您的操作系统不是Windows,请点击这里下载光盘版的文件镜像,刻录后用光盘刷新到最新的版本. 升级提醒: 1. 在BIOS升级过程之前,请确认电池已连接笔记本主机,并确保电量超过30%,保持电源适配器连接电脑并且能够正常供电; 2.

联想ThinkPad E431&amp;E531 开机出现0190报错现象如何解决

ThinkPad E431/E531产品,若在使用电源适配器时启动正常,但单接电池启动时出现以下0190报错,可通过升级产品BIOS来解决,升级后的BIOS请不低于1.14版本.     如果您使用的是Windows操作系统,请点击这里下载目前最新版的BIOS: 如果您的操作系统不是Windows,请点击这里下载光盘版的文件镜像,刻录后用光盘刷新到最新的版本.   升级提醒: 1. 在BIOS升级过程之前,请确认电池已连接笔记本主机,并确保电量超过30%,保持电源适配器连接电脑并且能够正常供电: