使用sprintf函数可以完成
sprintf(char * dest, "%02o", char * src);
%02o表示不足用0填充,另外转换格式是16进制。
需要注意的是,这个sprintf函数只能支持单个字节的进制转换(在实现进制转换这个功能的背景下),如果希望将一个char[]的所有内容全部转换成16进制,需要手动写一个循环来实现:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1327ab569c1ae82736693a50b8e33378.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0196c3df5ea9e936f21e9932cca91014.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
注意i*2是由于填充宽度总是限定在2个字节,如果希望更宽的话,这里的数值要相应改变。
使用sprintf函数可以完成
sprintf(char * dest, "%02o", char * src);
%02o表示不足用0填充,另外转换格式是16进制。
需要注意的是,这个sprintf函数只能支持单个字节的进制转换(在实现进制转换这个功能的背景下),如果希望将一个char[]的所有内容全部转换成16进制,需要手动写一个循环来实现:
注意i*2是由于填充宽度总是限定在2个字节,如果希望更宽的话,这里的数值要相应改变。