简单使用的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;
}
相关文章
|
安全 Linux iOS开发
Anaconda下载及安装保姆级教程(详细图文)
Anaconda下载及安装保姆级教程(详细图文)
34683 1
Anaconda下载及安装保姆级教程(详细图文)
|
开发工具 git
SourceTree配置BeyondCompare代码冲突解决工具
SourceTree配置BeyondCompare代码冲突解决工具
1477 0
|
4月前
|
消息中间件 负载均衡 中间件
⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现
本文介绍了如何基于 Netty 构建分布式即时通讯集群。随着用户量增长,单体架构面临性能瓶颈,文章对比了三种集群方案:Nginx 负载均衡、注册中心服务发现与基于 ZooKeeper 的消息路由架构。最终选择第三种方案,通过 ZooKeeper 实现服务注册发现与消息路由,并结合 RabbitMQ 支持跨服务器消息广播。文中还详细讲解了 ZooKeeper 搭建、Netty 集群改造、动态端口分配、服务注册、负载均衡及消息广播的实现,构建了一个高可用、可水平扩展的即时通讯系统。
529 0
|
6月前
|
存储 数据可视化 数据处理
optisystem输出到matlab的数据结构
optisystem输出到matlab的数据结构
|
Ubuntu Linux
软件安装(五):Ubuntu 18.04安装Teamviewer 看一遍就会
这篇文章介绍了在Ubuntu 18.04系统上通过图形界面和命令行两种方法安装TeamViewer远程控制软件的步骤。
373 2
ggplot2入门 学习笔记| 小提琴图怎么画?
ggplot2入门 学习笔记| 小提琴图怎么画?
|
存储 人工智能 Java
2024创建boot时 项目SDK11不支持所选的版本Java21 请选择较低版本的java 解决方案
2024创建boot时 项目SDK11不支持所选的版本Java21 请选择较低版本的java 解决方案
331 2
|
存储 Java 数据库
JPA中@ElementCollection使用
JPA中@ElementCollection使用
210 0
|
Python
Python继承:深入探索与实际应用
Python中的继承是OOP三大特性之一,允许子类继承父类的属性和方法,实现代码重用和扩展。子类通过`class`关键字和父类名定义,支持单继承和多继承。子类可覆盖父类方法,使用`super()`调用父类同名方法。继承在实际应用中如游戏开发,可创建类体系,提高代码复用性,实现模块化和层次化。掌握继承对于构建高效软件系统至关重要。