1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > c++ byte数组转int int转byte数组 byte数组转16进制字符串 16进制字符串转byte数组

c++ byte数组转int int转byte数组 byte数组转16进制字符串 16进制字符串转byte数组

时间:2020-09-22 11:55:26

相关推荐

c++ byte数组转int  int转byte数组 byte数组转16进制字符串 16进制字符串转byte数组

int转byte数组:

void IntToBytes(int num, unsigned char* bytes, int size)

{

for (int i = 0; i < size; i++)

{

int offset = i * 8;

bytes[i] = (num >> offset) & 0xFF;

}

}

byte数组转int:

int BytesToInt(const unsigned char* bytes, const int length)

{

int num = 0;

for (int i = 0; i < length; i++)

{

int offset = i * 8;

num |= (bytes[i] & 0xFF) << offset;

}

return num;

}

byte数组转16进制字符串:

std::string BytesToHexStr(const unsigned char* bytes, const int length)

{

std::string buff = "";

for (int i = 0; i < length; i++)

{

int high = bytes[i] / 16;

int low = bytes[i] % 16;

buff += (high < 10) ? ('0' + high) : ('A' + high - 10);

buff += (low < 10) ? ('0' + low) : ('A' + low - 10);

}

return buff;

}

16进制字符串转byte数组:

void HexToBytes(const std::string hex, unsigned char* bytes)

{

int len = hex.length() / 2;

std::string strByte;

unsigned int num;

for (int i = 0; i < len; i++)

{

strByte = hex.substr(i * 2, 2);

sscanf_s(strByte.c_str(), "%x", &num);

bytes[i] = num;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。