#include <iostream>
#include <Windows.h>
using namespace std;
// 把字节码转为十六进制码,一个字节两个十六进制,内部为字符串分配空间
char* ByteToHex(unsigned char* vByte, const int vLen)
{
if (!vByte)
return NULL;
char* tmp = new char[vLen * 2]; // 一个字节两个十六进制码,最后要多一个'/0'
int tmp2;
for (int i = 0; i < vLen; i++)
{
tmp2 = (int)(vByte[i]) / 16;
tmp[i * 2] = (char)(tmp2 + ((tmp2 > 9) ? 'A' - 10 : '0'));
tmp2 = (int)(vByte[i]) % 16;
tmp[i * 2 + 1] = (char)(tmp2 + ((tmp2 > 9) ? 'A' - 10 : '0'));
}
tmp[vLen * 2 + 1] = 0;
printf("%s \n", tmp);
return tmp;
}
void WriteTurnShort(unsigned short nValue)
{
if(nValue <= 255)
{
unsigned char c1 = 0;
ByteToHex(&c1, 1);
ByteToHex((unsigned char *)&nValue, 1);
}
else
{
unsigned char c1 = nValue - 255;
ByteToHex(&c1, 1);
c1 = 255;
ByteToHex(&c1, 1);
}
}
int main()
{
WriteTurnShort(108);
system("pause");
return 0;
}
把字节码转为十六进制码,一个字节两个十六进制,内部为字符串分配空间
最新推荐文章于 2023-07-05 12:04:38 发布
该C++代码定义了一个函数ByteToHex,将字节码转换为十六进制字符串,并在WriteTurnShort函数中展示了如何使用这个转换。主要处理小于255的数值。在main函数中,对108进行了转换并暂停程序执行。
摘要由CSDN通过智能技术生成