bin_to_hex.h
// 支持以十六进制格式记录二进制数据
// 格式标志,可以是以下任何组合:
// {:X} - 以大写字母打印。
// {😒} - 不要在每个字节之间添加空格。
// {:p} - 不要在每行开始时打印位置。
// {:n} - 不要将输出分割成行。
// {:a} - 如果未设置 :n,则显示ASCII。
原始的我们不做任何处理的情况下
const char data[] = "123456789abcdefghqkjkljl";
std::string h = fmt::format("{}", spdlog::to_hex(data, data + sizeof(data)));
spdlog::info(h.c_str())
当我们加上X
const char data[] = "123456789abcdefghqkjkljl";
std::string h = fmt::format("{X}", spdlog::to_hex(data, data + sizeof(data)));
spdlog::info(h.c_str());
当我们加上s的时候
当我们加上p的时候
当我们加上n的时候
当我们加上a的时候
其实在这里还有一个问题,在我们看hex的时候,经常会看到是16个byte的行,那么我们如何去添加呢
const char data[] = "123456789abcdefghqkjkljl";
std::string h = fmt::format("{:Xspn}", spdlog::to_hex(data, data + sizeof(data),16));
spdlog::info(h.c_str());
return 0;
}
可以看到后面有个16,这个就是每行的意思,意思每行16个;
同时,这个xspn这些选项可以混用。