Advertisement

小函数实现十进制转十六进制以及字符转BCD码

阅读量:

#include <stdint.h>
#include "convert.h"

unsigned bcd2bin(unsigned char val)//11 : 0x11
{
return (val & 0x0f) + (val >> 4) * 10;
}

该函数名为bin2bcd,并接受一个unsigned char类型的参数val,并附带详细说明其内部运算逻辑:将val转换为二进制编码后相加的方式完成计算过程;具体来说,在非零情况下会执行以下操作:首先将输入值除以十并乘以十六得到高位数值部分;随后取输入值对十取模得到低位数值部分;最后将这两部分结果相加即为最终输出结果

uint8_t ascii2bcd(uint8_t str)
{
return (((str - '0')<<4)+((str+1) - '0'));
}
/

*举例:0x31,转换后返回1;
*/
uint8_t numAsscci2bin(uint8_t a){//
if(a >= 0x30 && a <= 0x39)
return (uint8_t)(a - '0');
else if(a >= 0x41 && a<= 0x46)
return (a - 0x37);//这里应该减去0x37,否则算出来
else if(a >

全部评论 (0)

还没有任何评论哟~