gpt4 book ai didi

c - BYTE BCD 到 ASCII 转换优化

转载 作者:太空宇宙 更新时间:2023-11-04 05:21:50 25 4
gpt4 key购买 nike

我用 c 编写了一个函数,可以将字节(无符号字符)BCD 字符串转换为 ASCII。请查看代码并提出一些改进建议。

有没有其他有效的方法可以将 BYTE BCD 转换为 ASCII。

BYTE_BCD_to_ASC(BYTE *SrcString, char *DesString)
{

switch (((BCD *)SrcString)->l)
{
case 10:/*A*/
case 11:/*B*/
case 12:/*C*/
case 13:/*D*/
case 14:/*E*/
case 15:/*F*/
*DesString = (char)(((BCD *)SrcString)->l + '0' + 7);
break;
default:
*DesString = (char)(((BCD *)SrcString)->l + '0');
break;
}

switch (((BCD *)SrcString)->h)
{
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
*(DesString + 1) = (char)(((BCD *)SrcString)->h + '0' + 7);
break;
default:
*(DesString + 1) = (char)(((BCD *)SrcString)->h + '0');
break;
}
*(DesString + 2) = '\0';
}

谢谢

法哈尔

最佳答案

我想我会做这样的事情:

void BCD2ASC(unsigned char src, char *dest) { 
static const char outputs[] = "0123456789ABCDEF";
*dest++ = outputs[src>>4];
*dest++ = outputs[src&0xf];
*dest = '\0';
}

关于c - BYTE BCD 到 ASCII 转换优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3577784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com