hex 转换为 bcd 首先先看国人编的: (其中之一) /********** HEX转BCD******/ /***hex_data(<0xff,>0)****/ unsigned int HEX2BCD(unsigned char hex_data) { unsigned int bcd_data; unsigned char temp; temp =hex_data%100; bcd_data =((unsigned int)hex_data)/100<<8; bcd_data =bcd_data|temp/10<<4; bcd_data =bcd_data|temp%10; return bcd_data; } 接着看老外的思维: (也是其中之一) #define hex2bcd( x ) ({ int p = 0, c = 0; for (int i = x; i!=0; i=i/10) { p |= (i % 10)<<c; c+=4; } p; }) 老外的优势: 可以转换的范围可以达到int,不会只局限在0~0xff 另外,简练! | |
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/) | Powered by Discuz! X3.2 |