首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

解析BCD

近日有朋友问起BCD,在此我们就来说说这BCD。为什么会有BCD?...最常用的BCD称为8421BCD,8.4.2.1 分别是4位二进数的位取值。...具体编程函数如下,函数中参数val是一个字节数,那么此BCD是两位的BCD,即高四位是一个值、低四位是一个值,所以将高四位乘以10加上低四位值就得到了十进制数。...,个位又对应一个BCD,恰巧这个BCD对应的十进制数就是十六进制的十位和各位,也就说0x23中的2,对应0010,又对应十进制的2,这样一来,我们做显示的时候,直接把十六进制的BCD除以16,这样就分离出...BCD的十位,余数就是各位,这样显示出来的就是十进制了,其实除以16就是把变量右移4位,在C中右移1位等译除以2,所以除以16就等于右移4位,得到的是高四位,余数自然是低四位,道理和上面的是一样的。

2.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    BCD概述

    基本介绍BCD的英文全称是Binary-Coded Decimal‎,简称BCD,按字面解释是二进制二进制十进制代码,是一种二进制的数字编码形式。...通常用4位二进制代码对十进制数字符号进行编码,在这里会主要介绍的几种常用BCD就是8421,2421和余3。...疑问:BCD是用二进制数对十进制数编码,明明可以直接把十进制数转化为二进制数,为什么非要搞一个四位对一位的BCD?...84218421是最基本最常用的BCD,是十进制代码中最常用的一种。在这种编码方式中,每一位二值代码的“1”都代表一个固定数值。将每位“1”所代表的二进制数加起来就可以得到它所代表的十进制数字。...余三余三(余3)是由 8421BCD加上0011形成的一种无权,由于它的每个字符编码比相应的8421多3,故称为余三

    20310

    bcd与十进制转换方法_5421bcd转换十进制

    BCD其实就是之前在数字电路中说的 用4位二进制数值 来表示一个0-9中的数字, 例如: 0000=0 0001=1 0010=2 0011=3 也就是说如果把一个数字作为一个BCD,例如: 11...22 那么他应该展开为: 00010001 00100010 也就是对应为十进制: 17 34 所以一个BCD吗转为十进制数据的思想就是: 将BCD每个数字分离出来,例如上面的11 将十位的1分离出来然后左移...十进制转BCD的 思想:将这个十进制数字用二进制表示,高4位表示的数字是多少 * 10再加上低四位表示 的数字,C程序如下: #define BCD_to_Decimal(bcd) ((((bcd...) / 10) << 4) + ((bcd) % 10)) #define Decimal_to_BCD(dec) (((0xf0 & (dec)) >> 4)*10 + (0x0f & (dec))

    1.5K10

    一文攻破BCD转换与各进制转换

    一文攻破BCD转换与各进制转换 0.导语 最近做的项目中时刻看到时间戳用BCD[xx]来定义,那么针对这种定义,究竟代表什么意思,如何来使用呢,本节来阐述BCD与其他进制转换以及在笔试当中,会碰到进制转换问题...1.BCD BCD(Binary-Coded Decimal‎)亦称二进十进数或二-十进制代码。 用4位二进制数来表示1位十进制数中的0~9这10个数码。...BCD的运算规则:BCD是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。这样,当将 BCD传送给运算器进行运算时,其结果需要修正。...C实现 使用C语言来完成这个任务,将十进制数转换为十六进制数时使用sprinf(),而将十六进制数转换为十进制数时使用strtol() int de=19; char ch[10]; // 方法1 //...与其他进制的转化以及十进制转其他进制、其他进制转十进制实现等,在项目开发中BCD使用非常广,后面来仔细说明,欢迎订阅公众号光城。

    4.5K20

    基于Verilog HDL的二进制转BCD实现

    但是这样未免会耗费太多资源,使用移位加3算法就可以实现二进制到BCD之间的转换。        BCD(Binary-Coded Decimal‎)亦称二进十进数或二-十进制代码。...这里为什么大于四,BCD是四位二进制数表示一个十进制数的一位,如果这以为大于4,比如5,4’b0101,下一次移位后变成了4’b1010,BCD中是没有4’b1010的,所以要加6,向高位进位。...(4’b0011左移后也是4’b0110,移位前和移位后都是一样的对BCD的位数进行修正)。 为什么用左移的方法呢?这是因为二进制数和十进制数之间的位权的关系。...8 // Module Name : 9 // Called By : 10 // Abstract : 11 // 12 // CopyRight(c) 2018, NingHeChuan...******************************************************************************* 22 23 module Bin_BCD

    2K10

    BCD(8421)和整数互转算法的梯形图实现

    BCD(Binary Coded Decimal‎)是用4位二进制数来表示1位十进制数中的0~9的编码方法。其中,最常使用到的是8421BCD。...8421是一种有权,其各位的权分别是(从最有效高位开始到最低有效位)8,4,2,1。比如,BCD0x9234(二进制1001 0010 0011 0100)所代表的十进制数为9234。...BCD转整数的程序实现 从BCD的原理可知,对于一个16位的BCD而言,其数据表示范围为0~9999。...整数转BCD的程序实现 整数转BCD的原理同上,只不过各数位对应的加权分别变为了4096,256,16和1。...更多 上述程序是笔者多年前编写的,后来都是直接调用,没有过多思考,在校对此文的过程中,笔者忽然发现按数值区间大小分类讨论的方式完全没有必要,上述程序其实可以简化为: BCD转整数 整数转BCD

    1.8K20

    C语言学习教程,用C语言编写扫雷游戏

    本文实例为大家分享了C语言实现扫雷游戏及其优化的具体代码,供大家参考,具体内容如下 关于扫雷优化 1.核心思想:使用两个二维数组进行设计,一个用于显示,一个用于后台雷的布置。...3.界面布局仍需要进行优化 虽然说C语言开发发展前景好,但易学难精。由于入门容易这也导致了市场上人员泛滥、人才稀缺的局面产生。但是在互联网越来越强烈的竞争下,这样的人也最终会被市场淘汰。...对于想要从事C语言行业的小伙伴来说,一定要清楚自己未来的职业规划和就业方向。 扫雷游戏代码 相关运行样例 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多关注支持。

    7.7K20

    C语言教程 - 你好,世界!

    虽然C语言被认为 "难学",实际上C语言是一种非常简单的语言,功能强大。 Tutorial 导言 C语言是一种通用的编程语言,它与机器的工作方式密切相关。...理解计算机内存的工作方式是C语言编程的一个重要方面。 虽然C语言被认为 "难学",实际上C语言是一种非常简单的语言,功能强大。...C语言是一种非常常见的编程语言,它是许多应用程序的开发语言,如Windows、Python解释器、Git和许多其他编程语言。...C语言是一种编译语言——这意味着为了运行它,编译器(例如GCC或Visual Studio)必须将编写的代码进行处理,然后创建一个可执行文件。这个文件可以被执行,会做我们想让程序做的事情。...在本教程中,将返回0以表示程序是成功的: return 0; 请注意,C语言中的每个语句都必须以分号结束,这样编译器才知道一个新的语句已经开始。 最后不能不提,需要调用printf函数来打印句子。

    79840

    C语言教程 - 你好,世界!

    虽然C语言被认为 "难学",实际上C语言是一种非常简单的语言,功能强大。 Tutorial 导言 C语言是一种通用的编程语言,它与机器的工作方式密切相关。...理解计算机内存的工作方式是C语言编程的一个重要方面。 虽然C语言被认为 "难学",实际上C语言是一种非常简单的语言,功能强大。...C语言是一种非常常见的编程语言,它是许多应用程序的开发语言,如Windows、Python解释器、Git和许多其他编程语言。...C语言是一种编译语言——这意味着为了运行它,编译器(例如GCC或Visual Studio)必须将编写的代码进行处理,然后创建一个可执行文件。这个文件可以被执行,会做我们想让程序做的事情。...在本教程中,将返回0以表示程序是成功的: return 0; 请注意,C语言中的每个语句都必须以分号结束,这样编译器才知道一个新的语句已经开始。 最后不能不提,需要调用printf函数来打印句子。

    57830
    领券