BCD碼與ASC碼互轉

來源:互聯網
上載者:User

1、BCD碼轉換為ASC碼:

BCD轉換為ASC比較簡單,移位進行位與即可。

stringBCD2ASCII( const string &str ) {string res ;for( size_t i=0; i<str.size(); i++ ){char temp = (str[i] >> 4) & 0x0F ;if( temp >= 10 )res.push_back('A' + temp-10) ;elseres.push_back( '0' + temp ) ;temp = str[i]  & 0x0F ;if( temp >= 10 )res.push_back('A' + temp-10) ;elseres.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<str.size(); nBegin+=2 ){szBuf[0] = str[nBegin] ;szBuf[1] = str[nBegin+1] ;sscanf( szBuf,"%x" ,&nTemp ) ;res.push_back( (char)nTemp ) ;}return res ;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.