Привет У меня есть часть в коде, как -C++ шестнадцатеричной строки в целое, в то время как цикл
suppose len = 000000088805C24307142C690000000B6274626D6131333230736D0000000D322E31332E31302D313530333400000004000000E6
string len, remainder;
int numLen;
stringstream stream;
while(remainder!="NULL")
{
len = trim(remainder.substr(0,8), '0');
if(len.empty())
len = "0";
stream << len;
stream >> hex >> numLen; //problem in this part
numLen = (numLen*2);
TS << "DATA : 0x" << remainder.substr(0,8) << " " << remainder.substr(8,numLen) << endt;
remainder = remainder.substr(8+numLen);
}
желаемому output--
DATA : 00000008 8805C24307142C69
DATA : 0000000B 6274626D6131333230736D
DATA : 0000000D 322E31332E31302D3135303334
DATA : 00000004 000000E6
note--
Len является в шестнадцатеричном формате, я конвертирую его в dec и сохраняю в numLen
при расчете len
все хорошо в первом цикле, но из второго цикла значение для numLen
не перезаписывается, а использует старое значение, которое вызывает проблему.
EG-
first loop numLen = 8
numLen*2 = 16
second loop numLen = 16 (expected here is 11)
numLen*2 = 32 (expected here is 22)
Пожалуйста, помогите
'second loop numLen = 16 (ожидается здесь 11)' Как ожидается 11 во втором цикле? – NathanOliver
B is hex ... dec for is 11 –
Любой шанс, что вы действительно можете написать COMPLETE-программу, которая делает все, - думаю, ваш код делает что-то неправильно вне кода, который вы разместили ... –