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

C语言十进制BCD码互换

目录 1、复杂版 2、简易版 ---- 最近写单片机 RTC 日期、时间配置,需要实现十进制BCD码互换,将示例Demo分享给各位朋友: BCD是指用二进制来表示十进制数的编码,即:用4位二进制来表示一位十进制数...码转换为十进制,代码如下所示: int bcd_decimal_code( int bcd) { int sum = 0, c = 1; // sum返回十进制c每次翻10倍 for(int...i = 1; bcd > 0; i++) { if( i >= 2) { c*=10; } sum += (bcd%16) * c; bcd /= 16; // 除以16...同理与十进制除10将小数点左移一次,取余16也同理 } return sum; } 2、简易版 十进制转换为BCD码,代码如下所示: int bcd_decimal_code( int bcd)...(decimal - (decimal>>4) * 6); } ---- 参考资料: 1、十进制BCD码转换的算法 2、十进制BCD码在线工具

1.9K30

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
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言笔记】参函数

    提到参函数,我们的感觉是不是既熟悉又陌生?感觉熟悉是因为我们平时都在使用着,如我们常使用的printf()函数与scanf()函数就是典型的参函数。...因为printf()函数是参函数我们才可以根据我们的需要灵活地输出变量的值。...//给printf函数传入n个参数 我们可以根据需要给printf()函数传入n个参数,这就是参函数。 感觉陌生是因为我们没有试着创建参函数。...要创建参函数需要包含头文件stdarg.h,并且创建参函数应按照如下步骤进行: 【第一步】定义一个使用省略号的函数原型,如printf()与scanf()函数的原型为 int printf (const...2.0, 3.0, 4.0, 5.0, 6.0); printf("sum1 = %f\n", sum1); printf("sum2 = %f\n", sum2); return 0; } 参函数

    1.1K40

    十进制转换二进制(C语言

    题目: 链栈 利用链栈实现将一个十进制整数转换成二进制数。...然后输出 如:十进制数为出格式类似:十进制数7对应的二进制数为111,对应的八进制数为7 掌握要点: 1.十进制转换成二进制的方法 2.堆栈特点巧妙运用(先进后出,实现倒序) 相关文献: 十进制整数转换为二进制整数采用...具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来...---- 运算过程 要点:除二取余,倒序排列解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果例如把52换算成二进制数,计算结果如图:

    4.2K20

    (三)《数字电子技术基础》——码制

    数字系统中经常使用的码制有: 二-十进制 格雷码 误差检验码 纠错码 字符、数字代码 我们就开始对这些码制进行逐一讲解: 二-十进制码(BCD)         BCD (Binary Coded Decimal...BCD码仅表示十进制数的十个数码,即0~9,所以有些码是禁用码。...BCD码的特点: BCD 码是用二进制码表示十进制0-9这十个状态 ; BCD码是一种人为选定的代码,有许多种编码方案: 有些BCD码为恒权码,如:8421、2421、5421码等; 有些BCD码为权码...余3码 余3码的各位码没有固定的权,其代码中每一位的1所代表的十进制数在各个代码中不是固定的,具有这种特性的编码为无权码或权码; 余3码与8421-BCD码之间的关系为: 余3码=8421-BCD +...字符-数字代码 ASCII相信大家都挺熟的,是C语言的编码方式,在此就不做过多介绍: 字符、数字代码用来表示文字、符号和数码。它们是一种特殊的二进制代码,被广泛应用于计算机和数字通讯中。

    2K10

    如何到达C语言的巅峰?我推荐你阅读《C语言小白怪兽》!

    ---- 8年的编程功力 + 5年的精雕细琢 + 5次大改版 + 文学级的写作能力 ---- 各位学习C语言的小伙伴,今天给大家推荐一部经典的C语言教程——C语言小白怪兽。...《C语言小白怪兽》融入了作者 8 年的编程功力,以及文学级的写作能力,耗时 5 年完成,期间经过了 5 次大改版。 作者的执着和专注让我非常感动。在这个浮躁的年代,能沉下心了写一部教程着实不易。...《C语言小白怪兽》除了讲解语法知识,还重点讲解了: 1) 学习规划 告诉读者如何学习C语言,如何避免踩坑,分析程序员的发展方向以及高薪秘诀。 2) 内存 内存是菜鸟和大神的分水岭!...《C语言小白怪兽》处处涉及内存,从内存的角度分析每一个知识点,让读者看透本质。 此外还有一个《C语言和内存》专题,从更加宏观的层面讲解程序在内存中的分布,以及计算机控制内存的秘密。 ?...3) 字符编码 本教程还会揭开C语言界的一个弥天大谎:很多老师和教材都说C语言使用 ASCII 编码,这其实是彻头彻尾的错误,而且错得非常荒谬。

    7.8K86

    C#协和逆

    直白的理解:  “协”->”和谐的”->”很自然的变化”->string->object :协。  “逆”->”逆常的”->”不正常的变化”->object->string 逆。 ...我个人的理解: 因为协和逆的英文太复杂了,并没有体现协和逆的不同,但是out 和 in 却很直白。...不会被修改,编译器就可以推断下面的语句强制转换合法,所以 IEnumerable someAnimals = someDogs;  可以通过编译器的检查,反编译代码如下:  虽然通过了C#...想要回答这个问题需要在回头看看Clr via C# 关于泛型和接口的章节了,我就不解释了,  答案是不可以。  上面演示的是协,接下来要演示下逆。 ...In 关键字:逆,代表输入,代表着只能被使用,不能作为返回值,所以C#编译器可以根据in关键字推断这个泛型类型只能被使用,所以Action actionDog = actionAnimal;

    94830

    C语言十进制与二进制的相互转换

    常见的进制数有二进制、八进制、十进制、十六进制。在不同的进制之间还可以相互转换,如:二进制转十进制十进制转二进制等等。今天我来给大家分享如何运用C语言编写代码来实现进制数之间的互相转换。...如1A,2B,3C等; 十进制转换二进制 核心思路 将一个十进制数除二取余数,最后将余数逆序排列,就可以得到这个十进制数对应的二进制数了。...; printf("请输入一个十进制数:\n"); scanf("%d",&number); printf("十进制数%d转二进制数为%d",number,conversion(...75,输出以下结果: 十进制数75转换二进制数为1001011 二进制转换十进制 核心思路 从右到左将一个二进制数的每一位数乘以二的相应次方,然后就可以等得到这个二进制的十进制数了。...将一个二进制数除以十取余得到二进制的个位数,然后利用C语言头文件 math.h 中的 pow(); 函数,将这个二进制的个位上的数乘以二的零次方,依次类推,二进制数的十位上的数乘以二的一次方,二进制数的百位上的数乘以二的二次方

    2.3K20
    领券