IT/Linux
bcd2bin
캐드머스
2019. 5. 13. 14:46
Linux 커널 트리에 있는 함수 Test
#include#include unsigned bcd2bin(unsigned char val) { return (val & 0x0f) + (val >> 4) * 10; } unsigned char bin2bcd(unsigned val) { return ((val / 10) << 4) + val % 10; } void main(void) { unsigned val; printf("====================================\n"); val = bcd2bin(0x11); printf("bcd2bin(0x11) ==>0x%02x/%d\n", val, val); val = bcd2bin(0x19); printf("bcd2bin(0x19) ==>0x%02x/%d\n", val, val); val = bcd2bin(0x1a); printf("bcd2bin(0x1a) not BCD ==>0x%02x/%d\n", val, val); val = bcd2bin(0x20); printf("bcd2bin(0x20) ==>0x%02x/%d\n", val, val); printf("====================================\n"); val = bin2bcd(19); printf("bin2bcd(19) ==>0x%02x/%d\n", val, val); val = bin2bcd(20); printf("bin2bcd(20) ==>0x%02x/%d\n", val, val); } [root@localhost bcd2bin]# ./a.out ==================================== bcd2bin(0x11) ==>0x0b/11 bcd2bin(0x19) ==>0x13/19 bcd2bin(0x1a) not BCD ==>0x14/20 bcd2bin(0x20) ==>0x14/20 ==================================== bin2bcd(19) ==>0x19/25 bin2bcd(20) ==>0x20/32
반응형