如何把buffer里面的内容转换成用16位字符表示?

haisuifeng 2004-12-21 02:46:46
如何把buffer里面的内容转换成用16位字符表示?
...全文
129 点赞 收藏 7
写回复
7 条回复
寻开心 2004年12月22日
buffer里面的不一定都是数字,楼主的意图应该是类似UltraEdit那种二进制显示字符的需求吗?

buffer当中每个数字对应一个ascii数值,用16位表示


char * Convert(char *pBuffer)
{
if ( NULL == pBuffer ) return NULL;
int len = strLen(pBuffer);
char * pTemptarget = NULL;
char * pOut = new char[3*len];
pTempTarget = pOut;
for ( int i=0; i<len; i++, pBuffer++ )
{
sprintf(pTempTarget, "%02X ", *pBuffer);
pTempTarget += 3;
};
return pOut;
};
回复 点赞
MyNameEPC 2004年12月21日
1:使用强制转换,然后用 wcout 输出,不过这要求 buffer 里要保证是两个 0 结尾。
2:在不能保证 buffer 里是两个 0 结尾情况下,把 buffer 内容拷贝到另一个 buffer 里,另一个 buffer 的长度是原 buffer 长度 + 2 个字节的长度,最后再用 wcout 输出。
提示:其实 C Runtime 里所有和字符处理有关的函数里都有 Unicode 版本的,当然操作系统自己也有的,比如 Windows 里的 MultiByteToWideChar() 函数。
回复 点赞
sunvin 2004年12月21日
/* convert 2 characters into a byte, e.g. FF -> 255 */
int my_strtol(char *ch)
{
int n1, n2;

n1 = (ch[0] >= 'A') ? (ch[0] - 'A' + 10) : (ch[0] - '0');
n2 = (ch[1] >= 'A') ? (ch[1] - 'A' + 10) : (ch[1] - '0');

return (n1 << 4) + n2;
}
回复 点赞
goodluckyxl 2004年12月21日
http://community.csdn.net/Expert/topic/3660/3660820.xml?temp=.7359125
回复 点赞
haisuifeng 2004年12月21日
字符的16进制
回复 点赞
寻开心 2004年12月21日
unicode string?

MultiByteToWideChar
回复 点赞
Michael_555 2004年12月21日
16位的字符?
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告