如何在C++中十六进制 protobuf 的二进制字符串?
How to hexlify protobuf's binary string in C++?
例如,我的protobuf消息是
message Person {
required string name=1;
}
如果我使用python:
import personinfo_pb2
person = personinfo_pb2.Person()
person.name="Houl"
packed_data = person.SerializeToString()
我可以通过以下方式打印六角体数据:
print binascii.hexlify(packed_data)
我想知道如何在C++中对SerializeToString
数据进行六进制运算?
您需要自己实现十六进制编码。例如,一种可能的实现方式可以是:
string HexEscape(const string& buf) {
string result(buf.size() * 3 + 1, ' ');
const char hex[] = "0123456789ABCDEF";
for(size_t i = 0; i < buf.size(); ++i) {
char* dest = &result[i*3];
*dest++ = hex[(buf[i]>>4) & 0xF];
*dest++ = hex[buf[i] & 0xF];
*dest = ' ';
}
return result;
}
相关文章:
- 查找"n"二进制字符串中最长公共子字符串的长度
- 如何在C ++中将二进制字符串128位转换为十进制字符串?
- 如何排列二进制字符串以最小化它们之间的距离
- 将二进制字符串/文件内容从 c++ 传递到节点 js
- C++ 将二进制字符串转换为整数或比较 2 个字符串以查找差异数
- 将大型二进制字符串写入二进制文件
- 将浮点数向量转换为十六进制/二进制字符串
- 我如何在二进制字符串中解开KTH集位
- 在 c++ 中将负 int 转换为二进制字符串
- 将二进制字符串转换为十进制
- 在二进制字符串的数字之间留出空间
- 将整数转换为二进制字符串
- 如何将二进制字符串转换为 ASCII 字符串
- C ++检查字符串是否包含字符以及如何将二进制字符串转换为整数
- 在 C/C++ 中将非常大的 int(写为字符串)转换为二进制字符串
- 如何将二进制字符串转换为整数字符串
- 将二进制字符串转换为整数字符串c++
- 构建一个二进制字符串c++
- 这是从二进制字符串转换为十进制值的无效方法吗?
- 将二进制字符串写入二进制文件