2019年11月19日
BCD码转10进制字符串(C#、C++)
C#
/// <summary> /// 将bcd字节数组转为10进制字符串 /// </summary> /// <param name="bcd">bcd码字节数组</param> /// <returns>返回转换后的10进制字符串</returns> public string BCDCodeToDecimalString(byte[] bcd) { StringBuilder sb = new StringBuilder(); for (int i=0; i<bcd.Length; i++) { sb.Append(ConvertBCDToInt(bcd[i])); } return sb.ToString(); } /// <summary> /// 将BCD一字节数据转换到byte 十进制数据 /// </summary> /// <param name="b" />字节数 /// <returns>返回转换后的BCD码</returns> public static byte ConvertBCDToInt(byte b) { //高四位 byte b1 = (byte)((b >> 4) & 0xF); //低四位 byte b2 = (byte)(b & 0xF); return (byte)(b1 * 10 + b2); }
C++
void BCDCodeToDecimalString(unsigned char x[],int len,char* y) { for(int i(0);i<len;i++) { if(x[i]>=0x00&&x[i]<=0x0F) { y[i*2] = '0'; sprintf((y+i*2+1),"%x",x[i]); } else { sprintf((y+i*2),"%x",x[i]); } } }