1、BCD码转换为ASC码:
BCD转换为ASC比较简单,移位进行位与即可。
stringBCD2ASCII( const string &str )
{
string res ;
for( size_t i=0; i
{
char temp = (str[i] >> 4) & 0x0F ;
if( temp >= 10 )
res.push_back('A' + temp-10) ;
else
res.push_back( '0' + temp ) ;
temp = str[i] & 0x0F ;
if( temp >= 10 )
res.push_back('A' + temp-10) ;
else
res.push_back( '0' + temp ) ;
}
return res ;
}
2、ASC码转换为BCD码:
利用scanf,将相邻两个字符直接转换为16进制数字。
string ASCII2BCD( const string &str )
{
stringres ;
size_tnBegin = 0 ;
intnTemp ;
charszBuf[16] = {0} ;
if( str.size() % 2 != 0 )
{
szBuf[0] = '0' ;
szBuf[1] = str[0] ;
sscanf(szBuf,"%x" ,&nTemp) ;
nBegin = 1 ;
res.push_back( (char)nTemp ) ;
}
for(; nBegin
{
szBuf[0] = str[nBegin] ;
szBuf[1] = str[nBegin+1] ;
sscanf( szBuf,"%x" ,&nTemp ) ;
res.push_back( (char)nTemp ) ;
}
return res ;
}