如何将这段C++代码转化成java代码,求大神指导?
boolTCommThread::ReceiveChar(charChar){//Modbus报文的第一个字符应当是':'if(Char!='p'&&__RxBuffer...
bool TCommThread::ReceiveChar(char Char)
{
// Modbus报文的第一个字符应当是':'
if(Char != 'p' && __RxBuffer.size() == 0)
return false;
// 将字符写入缓冲
__RxBuffer.push_back(Char);
// 如果收到的字符不是结束符,则退出
if(Char != '!')
{
if(__RxBuffer.size() > 10)
__RxBuffer.clear();
return false;
}
// 收到结束符,对报文加以解析处理
// 首先检查报文格式
if(__RxBuffer.size() != 10)
{
__RxBuffer.clear();
return false;
}
// 解析应答报文
if(__RxBuffer[1] == '1')
__LPosition = CharToWord(__RxBuffer, 3);
else if(__RxBuffer[1] == '2')
__RPosition = CharToWord(__RxBuffer, 3);
Synchronize(Form1->ShowStripPosition);
return true;
}
//------------------------------------------------------------------------------
// CharToHex()
//------------------------------------------------------------------------------
Byte TCommThread::CharToHex(char Char)
{
if(Char >= '0' && Char <= '9')
return Char - '0';
else if(Char >= 'A' && Char <= 'F')
return Char - 'A' + 10;
else if(Char >= 'a' && Char <= 'f')
return Char - 'a' + 10;
else
return 0;
}
//------------------------------------------------------------------------------
// CharToWord()
//------------------------------------------------------------------------------
Word TCommThread::CharToWord(vector<Byte> &Buffer, unsigned int Begin)
{
return (CharToHex(Buffer[Begin]) << 12) |
(CharToHex(Buffer[Begin + 1]) << 8) |
(CharToHex(Buffer[Begin + 2]) << 4) |
CharToHex(Buffer[Begin + 3]);
} 展开
{
// Modbus报文的第一个字符应当是':'
if(Char != 'p' && __RxBuffer.size() == 0)
return false;
// 将字符写入缓冲
__RxBuffer.push_back(Char);
// 如果收到的字符不是结束符,则退出
if(Char != '!')
{
if(__RxBuffer.size() > 10)
__RxBuffer.clear();
return false;
}
// 收到结束符,对报文加以解析处理
// 首先检查报文格式
if(__RxBuffer.size() != 10)
{
__RxBuffer.clear();
return false;
}
// 解析应答报文
if(__RxBuffer[1] == '1')
__LPosition = CharToWord(__RxBuffer, 3);
else if(__RxBuffer[1] == '2')
__RPosition = CharToWord(__RxBuffer, 3);
Synchronize(Form1->ShowStripPosition);
return true;
}
//------------------------------------------------------------------------------
// CharToHex()
//------------------------------------------------------------------------------
Byte TCommThread::CharToHex(char Char)
{
if(Char >= '0' && Char <= '9')
return Char - '0';
else if(Char >= 'A' && Char <= 'F')
return Char - 'A' + 10;
else if(Char >= 'a' && Char <= 'f')
return Char - 'a' + 10;
else
return 0;
}
//------------------------------------------------------------------------------
// CharToWord()
//------------------------------------------------------------------------------
Word TCommThread::CharToWord(vector<Byte> &Buffer, unsigned int Begin)
{
return (CharToHex(Buffer[Begin]) << 12) |
(CharToHex(Buffer[Begin + 1]) << 8) |
(CharToHex(Buffer[Begin + 2]) << 4) |
CharToHex(Buffer[Begin + 3]);
} 展开
2016-05-15
展开全部
package test;import java.util.Scanner;class Zhuanhuan { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n,i,sum,t; t = sc.nextInt(); while(t>0) { sum=0; n = sc.nextInt(); int[] a=new int[n]; for(i=0; i0) System.out.println(""); t--; } sc.close(); }}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询