C# 4.0 将值中的第七个字节移位后,Int64类型值的左移位操作返回负值

C# 4.0 将值中的第七个字节移位后,Int64类型值的左移位操作返回负值,c#-4.0,C# 4.0,对Int64类型的值执行左移位操作,移位第7字节后得到负值。这些是用于4、5和6字节的值222157,其余128字节为零。它在计算器中运行良好,但在程序中不起作用。如果代码中有任何错误,请更正,我使用的是64位机器 我的代码是这样的 int value = 0; for (int i = 0; i < 8; i++) { value <<= 8; value |= (byte)messageStream.ReadByte(); }

对Int64类型的值执行左移位操作,移位第7字节后得到负值。这些是用于4、5和6字节的值222157,其余128字节为零。它在计算器中运行良好,但在程序中不起作用。如果代码中有任何错误,请更正,我使用的是64位机器

我的代码是这样的

int value = 0;
 for (int i = 0; i < 8; i++)
 {
      value <<= 8;
      value |= (byte)messageStream.ReadByte();
 }       
int值=0;
对于(int i=0;i<8;i++)
{

值“对Int64类型的值执行左移操作”-不,您不是。您的变量类型为
int
。理想情况下,请提供一个简短但完整的程序来演示该问题,包括示例输入和预期/实际结果。哦,是的!对不起,Jon,现在工作正常,我只是将Int64改为int。