如何得到BCD码

cs_lyl 2004-03-24 09:16:09
我有个值int i=771
转换成16进制是0303,
我想得到字符型的"0303",
请教如何实现!!!!
...全文
62 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cs_lyl 2004-03-24
  • 打赏
  • 举报
回复
多谢
thp 2004-03-24
  • 打赏
  • 举报
回复
补上压缩BCD码:
AnsiString ZipBcdToStr(const char bcd)
{
char l,r;
l = (bcd >> 4) & 0x0F;
r = bcd & 0x0F;
return IntToStr(l) + IntToStr(r);
}
fjye 2004-03-24
  • 打赏
  • 举报
回复
昏,BCB可以用IntToHex的啊,我自己都昏了
你直接用IntToHex就可以了
AnsiString b=IntToHex(771,4);
fjye 2004-03-24
  • 打赏
  • 举报
回复
不好意思,写错了,我另写一个,上面是是转ASII码的
fjye 2004-03-24
  • 打赏
  • 举报
回复
AnsiString BCD_to_AnsiString(char * P_BCD, int length)
{
//TODO: Add your source code here
AnsiString returnstring = "";
char high_char,low_char,temp;
for(int i=0;i<length;i++)
{
temp = *P_BCD++;
high_char = (temp&0xf0)>>4;
low_char = temp&0x0f;
if ((high_char>=0x00)&&(high_char<=0x09))
high_char+=0x30;
if ((high_char>=0x0A)&&(high_char<=0x0F))
high_char+=0x37;

if ((low_char>=0x00)&&(low_char<=0x09))
low_char+=0x30;
if ((low_char>=0x0A)&&(low_char<=0x0F))
low_char+=0x37;

returnstring += AnsiString(high_char);
returnstring += AnsiString(low_char);
}
return returnstring;
}
int i=177;
AnsiString a=IntToStr(i);
AnsiString b=BCD_to_AnsiString(a.c_str(),a.Length());

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧