本文介绍了如何将十六进制字符转换为\x90\x90之类的字节?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找一种将十六进制字符转换为 \x90\x0d\x41
之类的字节的方法,当我使用 printf()时
,是否打印二进制数据?
I am searching a way to convert hex char to bytes like \x90\x0d\x41
and when I use printf()
, binary data are printed?
char *hex = "909090904241";
当我需要获取 \x90\x90\x90\ \x90\x42\x42
,然后在我打印时得到二进制数据。
when I need to get \x90\x90\x90\x90\x42\x42
and when I print I get binary data.
推荐答案
循环在字符串中添加一个新的字符串,并在其前面附加一个 \x
,像这样:
Loop through the string and append to a new string a piece with \x
added infront like this:
const char *hex = "909090904241";
char* result = malloc((strlen(hex) * 2 + 1)* sizeof(char));
result[0] = 0;
char piece[] = "\\x00";
for (int i = 0; i < strlen(hex); i+=2) {
piece[2] = hex[i];
piece[3] = hex[i+1];
strcat(result, piece);
}
这篇关于如何将十六进制字符转换为\x90\x90之类的字节?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!