简单使用的BCD码判断方法

简介: 简单使用的BCD码判断方法

先看什么是BCD码:

BCD码(Binary-Coded Decimal)

亦称二进码十进数或二-十进制代码。

用4位二进制数来表示1位十进制数中的0~9这10个数码。

是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。

通俗点,BCD码就是对于8位数字来说,高4为和低4为均不超过9的数字。

对新手来说,BCD码很容易和16进制数混淆。
举几个例子:

12 

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

0xAB

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

如何判断一个数字是否是BCD码呢

其实我们根据BCD码的定义来看就知道,只需要写一个循环,逐个数字进行判断,逻辑也很简单。如下:

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

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

        return true;
}
相关文章
|
8月前
余三码和8421码的关系以及使用场景
余三码与8421码是两种不同的二进制编码方式,常用于表示十进制数。余三码是8421码加上3形成的无权码,具有自补性和进位信号特点,适合错误检测,但求和需修正。8421码是恒权码,方便二进制与十进制转换,常用于数字显示、数据传输和精确十进制运算。在计算机领域,两者各有应用场景,如BCD码用于七段显示器和精确计算,余三码则用于错误检测和简化算术操作逻辑设计。
|
9月前
|
存储 C语言
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
89 0
|
存储
系统码的编译码与汉明码
系统码的编译码与汉明码
175 0
系统码的编译码与汉明码
Code39 码是干什么的?底层原理是什么?
Code39 码是干什么的?底层原理是什么?
440 0
|
C语言
带你刷 · C语言 | Sn=a+aa+aaa+aaaa+aaaaa+...的前n项之和
问:求`Sn=a+aa+aaa+aaaa+aaaaa+...`的前`n`项之和,其中`a`是一个数字
353 0
带你刷 · C语言 | Sn=a+aa+aaa+aaaa+aaaaa+...的前n项之和
|
JSON 数据格式
关于 Qt使用QJsonObject解析超范围整数的时候提取value失败 的解决方法
关于 Qt使用QJsonObject解析超范围整数的时候提取value失败 的解决方法
关于 Qt使用QJsonObject解析超范围整数的时候提取value失败 的解决方法
TP5.1对登录的返回码优化
TP5.1对登录的返回码优化
154 0
TP5.1对登录的返回码优化
|
Python
Python基础题型实战07-输入的整数是偶数,则返回1,否则返回0
成年人的世界,似乎只有赚到足够的钱,才能过上简单、安逸、自由的生活,才能让自己活得更有底气些。所以,多一些努力吧,少点功夫矫情。
|
Java C++
ZZULIOJ-1093: 验证哥德巴赫猜想(函数专题)(Java)
ZZULIOJ-1093: 验证哥德巴赫猜想(函数专题)(Java)