简单使用的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;
}
相关文章
|
存储 Java C++
【==是判断相等吗?---错辣】C++和JAVA中判断字符串值相等的区别
C++与JAVA之间存在着一些区别,我们需要重视区别才能更好地灵活学习和运用不同的编程语言。 总之,C++中可以利用==来判断两个字符串的值是否相等;而JAVA中必须使用String类的成员函数equals()(区分大小写)和equalsIgnoreCase()(不区分大小写)来判断两个字符串的值是否相等。
117 0
|
7月前
|
存储 C语言
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
78 0
|
存储
系统码的编译码与汉明码
系统码的编译码与汉明码
164 0
系统码的编译码与汉明码
|
算法
Qt实现一个重复文件检测小工具(原理:通过md5校验)
Qt实现一个重复文件检测小工具(原理:通过md5校验)
327 0
Code39 码是干什么的?底层原理是什么?
Code39 码是干什么的?底层原理是什么?
403 0
|
Java
Java中同时输入字符串和int类型出错的处理方式
在Java中,如果输入int类型和字符串处理不当会产生错误,例如:如果先输入int类型,在输入字符串类型
323 0
|
Java
Java实现图片转字符输出示例demo
前面几篇博文介绍了使用jdk来对图片做一些有意思的转换,接下来我们再介绍一个有意思的玩法,直接根据图片,输出一个二维字符数组,实现用字符来实现绘画的场景 各位小伙伴可能都有看到过一些有趣的注释,比如大佛,美女之类的,通关本文,相信你也很可以很简单的实现类似的场景 作者:一灰灰 链接:https://juejin.cn/post/7033040253673799711 来源:稀土掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
137 0
Java实现图片转字符输出示例demo
TP5.1对登录的返回码优化
TP5.1对登录的返回码优化
147 0
TP5.1对登录的返回码优化
|
Java C++
ZZULIOJ-1093: 验证哥德巴赫猜想(函数专题)(Java)
ZZULIOJ-1093: 验证哥德巴赫猜想(函数专题)(Java)
|
缓存 Java vr&ar
【BUG日记】【JAVA】使用==判断两个Integer类型的值,发现if语句不起作用(正确做法:使用的判断是equals()去判断)
【BUG日记】【JAVA】使用==判断两个Integer类型的值,发现if语句不起作用(正确做法:使用的判断是equals()去判断)
215 0