Quote:
Originally Posted by Der-Eddy
Stell deine Frage doch einfach hier
Python Masterrace hehe
|
GO Eddy GO :mofo:
python code in c++ übersetzen
python:
Code:
def __encodeInt(self,value):
result = []
val = value
if val < 0x32:
result.append(val)
else:
curbyte = ((val & 0x3F) | 0x80)
result.append(curbyte)
currshift = val >> 6
while (currshift > 0x80):
curbyte = ((currshift & 0x7F) | 0x80)
currshift = currshift >> 7
result.append(curbyte)
result.append(currshift)
for i in range(0, len(result)):
if len(hex(result[i])[2:]) == 1:
result[i] = "0"+hex(result[i])[2:]
else:
result[i] = hex(result[i])[2:]
while len(result) < 4:
result[:0] = "0"
result[0] = "00"
for i in range(0, len(result)):
if (result[0] == "00" and len(result) != 1):
result.pop(0)
result = "".join(result)
return result.replace("L", "")
c++
Code:
void Test(uint32_t Value)
{
uint32_t byte = 0;
uint32_t byteshift = 0;
std::vector<BYTE> m_buffer;
std::vector<BYTE> m_buffer2;
if (Value < 0x32)
{
m_buffer.push_back(Value);
}else{
byte = ((Value & 0x3F) | 0x80);
m_buffer.push_back(byte);
byteshift = Value >> 6;
while (byteshift > 0x80)
{
byte = ((byteshift & 0x7F) | 0x80);
byteshift = byteshift >> 7;
m_buffer.push_back(byte);
}
m_buffer.push_back(byteshift);
}
for (auto i = 0; i < m_buffer.size(); i++)
{
short li = sizeof(m_buffer[i]) / sizeof(m_buffer[0]);
if (li == 1)
{
m_buffer2.push_back(0);
m_buffer2.push_back(m_buffer[i]);
printf("1 \n");
}else {
printf("0 \n");
m_buffer2.push_back(m_buffer[i]);
}
}
for (uint32_t i = 0; i < m_buffer2.size(); i++)
{
printf("%02x ", static_cast<uint8_t>(m_buffer2[i]));
if ((i + 1) % 16 == 0)
printf("\n");
}
printf("\n");
}