运算符?

yyixin 2009-03-17 11:01:35
 
private long ReadLong4(long offset)
{
long ret = 0;
ipFile.Position = offset;
ret |= (ipFile.ReadByte() & 0xFF);
ret |= ((ipFile.ReadByte() << 8) & 0xFF00);
ret |= ((ipFile.ReadByte() << 16) & 0xFF0000);
ret |= ((ipFile.ReadByte() << 24) & 0xFF000000);
return ret;
}


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

出现如上警告,请问如何改?谢谢.

...全文
153 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CodingPioneer 2009-06-26
  • 打赏
  • 举报
回复
更直接更好的方法
ret |= (long)(ipFile.ReadByte() & (long)0xFF);
ret |= ((ipFile.ReadByte() << 8) & (long)0xFF00);
ret |= ((ipFile.ReadByte() << 16) & (long)0xFF0000);
ret |= ((ipFile.ReadByte() << 24) & (long)0xFF000000);
CodingPioneer 2009-06-26
  • 打赏
  • 举报
回复
ret = (long)((UInt32)ret | (UInt32)(ipFile.ReadByte() & 0xFF));
volnet 2009-03-17
  • 打赏
  • 举报
回复
ret |= (long)(ipFile.ReadByte() & 0xFF);
yyixin 2009-03-17
  • 打赏
  • 举报
回复
up

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧