问题描述
本人新手,接收到的数值溢出最大值,怎么破?voidsPort_DataReceived(objectsender,SerialDataReceivedEventArgse){intn=sPort.BytesToRead;byte[]buf=newbyte[n];byte[]pcmbuf=newbyte[n];received_count+=n;sPort.Read(buf,0,n);for(inti=0;i<n;i++){builder.Append(buf[i].ToString("X2")+"");pcmbuf[i]=(byte)(buf[i]^xor);pcmbuf[i]=Decompression(pcmbuf[i]);}bw1.Write(buf,0,n);bw2.Write(pcmbuf,0,n);[b]this.progressBar1.Value=(int)received_count;[/b][/color[color=#FF9900]]//“131120”的值对于"Value"无效this.textBox1.AppendText(builder.ToString());builder.Clear();if(received_count==131072){MessageBox.Show("数据接收完毕");received_count=0;bw1.Close();fs1.Close();bw2.Close();fs2.Close();}}其中progressBar1.Value=0;progressBar1.Maximum=131072;privatelongreceived_count=0;
解决方案
解决方案二:
//“131120”的值对于"Value"无效progressBar1.Maximum=131072;连大小都分不清了吗?
解决方案三:
//“131120”的值对于"Value"无效progressBar1.Maximum=131072;连大小都分不清了吗?是机器接收到的数值溢出最大值,131120是接受的数值,不是给的其实前面有个传输字头byte[]head={0x52,0x49,0x46,0x46,0x24,0x00,0x02,0x00,0x57,0x41,0x56,0x45,0x66,0x6D,0x74,0x20,0x10,0x00,0x00,0x00,0x06,0x00,0x01,0x00,0x40,0x1F,0x00,0x00,0x40,0x1F,0x00,0x00,0x01,0x00,0x08,0x00,0x64,0x61,0x74,0x61,0x00,0x00,0x02,0x00};怎么修改程序,谢谢