使用sprintf函数可以完成
sprintf(char * dest, "%02o", char * src);
%02o表示不足用0填充,另外转换格式是16进制。
需要注意的是,这个sprintf函数只能支持单个字节的进制转换(在实现进制转换这个功能的背景下),如果希望将一个char[]的所有内容全部转换成16进制,需要手动写一个循环来实现:
for
(
int
i
=
0
; i
<
size;
++
i)
... {
sprintf(cHexText + (i*2), "%02o", char[i] );
}
cHexText[i * 2 ] = '
... {
sprintf(cHexText + (i*2), "%02o", char[i] );
}
cHexText[i * 2 ] = '
注意i*2是由于填充宽度总是限定在2个字节,如果希望更宽的话,这里的数值要相应改变。