小函数实现十进制转十六进制以及字符转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)
还没有任何评论哟~
