判断是否为BCD码

BCD码的判断。先看什么是BCD码:

BCD码(Binary-Coded Decimal)亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。

通俗点,BCD码就是对于8位数字来说,高4为和低4为均不超过9的数字。 
对新手来说,BCD码很容易和16进制数混淆。 
举几个例子:

12 
1
作为10进制很好理解,表示12;作为16进制表示0x12,等于十进制的18;但它同时又可作为BCD码传输,代表1和2,一般作为地址等特定数据传输。 

0xAB
1
则不是bcd码,因为高四位A和第四位B均超过了9,属于16进制数。

源代码:

U8 JudgeBCD(U8 *sPtr, U8 Len)
{
    U8 Temp;

        while (Len--)
        {
            Temp = *sPtr++;
         if (((Temp >> 4  ) >= 10) || ((Temp & 0x0F) >= 10))
            {
                return false;
            }
        }

        return true;
}
--------------------- 
作者:搬砖公司董事长 
来源:CSDN 
原文:https://blog.csdn.net/dongtuoc/article/details/79099337 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/u012252959/article/details/86649605
今日推荐