简单使用的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;
}
相关文章
|
12月前
|
Ubuntu
qml加载开机白屏易死机的解决方案
本文讨论了在QML开发中遇到的加载白屏和死机问题,并提供了解决方案。文章给出了QML在开发板上启动时白屏问题的解决方法,以及在加载网络图片时可能导致的卡死问题,并分享了相关的参考链接和最佳实践代码示例。
200 2
|
开发工具 git
SourceTree配置BeyondCompare代码冲突解决工具
SourceTree配置BeyondCompare代码冲突解决工具
1364 0
|
监控 网络架构
CAN-TP传输协议详解
CAN-TP传输协议详解
CAN-TP传输协议详解
|
存储 人工智能 Java
2024创建boot时 项目SDK11不支持所选的版本Java21 请选择较低版本的java 解决方案
2024创建boot时 项目SDK11不支持所选的版本Java21 请选择较低版本的java 解决方案
238 2
|
12月前
|
编译器 Windows
plugin cannot be loaded for module “QtQuick“ && Could not load the Qt platform plugin “windows“
本文讨论了在Qt应用程序中遇到的平台插件加载问题,包括具体的错误信息、解决方案和参考链接。问题表现为无法加载“QtQuick”模块的插件,并且无法找到“windows”平台插件。解决方案是修改环境变量`Qt5_DIR`以使用正确的Qt版本和编译器环境。
813 1
|
存储 Java 数据库
JPA中@ElementCollection使用
JPA中@ElementCollection使用
153 0
|
安全 搜索推荐 API
【现代密码学】笔记 补充7-- CCA安全与认证加密《introduction to modern cryphtography》
【现代密码学】笔记 补充7-- CCA安全与认证加密《introduction to modern cryphtography》
514 0
|
安全 网络安全 数据库
LabVIEW NI网络设备在MAX中不显示或未识别
LabVIEW NI网络设备在MAX中不显示或未识别
683 4
|
机器学习/深度学习 数据采集 算法
【Python机器学习】PCA降维算法讲解及二维、高维数据可视化降维实战(附源码 超详细)
【Python机器学习】PCA降维算法讲解及二维、高维数据可视化降维实战(附源码 超详细)
552 1