如何实现USC2编码和汉字之间的转换和BCD格式与数字间的转换

kuiz422998 2008-04-02 05:17:36
我现在要做一个程序要求实现USC2编码和汉字之间的转换和BCD格式与数字间的转换,各位大哥帮帮忙哦,先谢了
...全文
277 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnct41 2008-04-16
  • 打赏
  • 举报
回复
BYTE BCDToByte( BYTE BCD )
{
return ((BCD >> 4) * 10) + (BCD & 0x0f);
}
BYTE ByteToBCD( BYTE b )
{
if ( b >= 100 ) b = b - 100;
return ((b /10) << 4) +(b % 10);
};
kuiz422998 2008-04-16
  • 打赏
  • 举报
回复
呵呵,搞定了,原来是我数组设的小了。只处理了一个字节。马上结帖,接分了,各位
智能卡_Snooper 2008-04-15
  • 打赏
  • 举报
回复
//张三123
0x5F, 0x20, 0x4E, 0x09, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33,

这结果有问题吗?
智能卡_Snooper 2008-04-15
  • 打赏
  • 举报
回复
不知道你据说的出错是什么原因,贴出代码来,我写的包含这段代码的的程序,被几十人常年用着,相关部分都没出过错。
kuiz422998 2008-04-15
  • 打赏
  • 举报
回复
希望高人指点下哦。都个把星期了
kuiz422998 2008-04-10
  • 打赏
  • 举报
回复
不是的,我是说我转换“张三123”时就出错了哦
智能卡_Snooper 2008-04-09
  • 打赏
  • 举报
回复
多字节?多少字节?里面的缓冲是4096,你嫌小可以改成100M,不过得是new出来才行。
kuiz422998 2008-04-09
  • 打赏
  • 举报
回复
大哥,这个程序遇到多字节就不行了哦,但还是感谢哦
智能卡_Snooper 2008-04-08
  • 打赏
  • 举报
回复
unsigned char buf[ 100 ];
s2u( "啊", buf, 2 );

运行结果。
buf[ 0 ] = 0x55;
buf[ 1 ] = 0x4a;
智能卡_Snooper 2008-04-08
  • 打赏
  • 举报
回复
gb码转换成ucs2格式。

int s2u(const char* pSrc, BYTE* pDst, int nSrcLength)
{
int nDstLen = 0;
int nOffset = nSrcLength;
int nTotal = 0;
WCHAR wchr[ 4096 ];

try
{
while( nOffset>0 )
{
nDstLen = ::MultiByteToWideChar(CP_ACP, 0, pSrc, nOffset, wchr, 4096);
if(nDstLen>0)
{
for(int i = 0; i < nDstLen ; i++ )
{
//取高位放在第一个BYTE
*(pDst++) = HIBYTE(wchr[i]);
//取低位放在下一个BYTE
*(pDst++) = LOBYTE(wchr[i]);
}
}
else
{
return -1;
}

nTotal += nDstLen<<1;
break;
}
}
catch( ... )
{
return -1;
}

return nTotal;
}
kuiz422998 2008-04-08
  • 打赏
  • 举报
回复
现在我要实现把汉字转换成unicode码,如“啊”转换后为0x554A
kuiz422998 2008-04-08
  • 打赏
  • 举报
回复
那位大哥帮帮忙撒。痛苦等待中……
相关推荐
发帖
图形处理/算法

1.9w+

社区成员

VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
帖子事件
创建了帖子
2008-04-02 05:17
社区公告
暂无公告