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

C语言进制、BCD码互换

目录 1、复杂版 2、简易版 ---- 最近写单片机 RTC 日期、时间配置,需要实现进制、BCD码互换,将示例Demo分享给各位朋友: BCD是指用二进制来表示进制数的编码,即:用4位二进制来表示一位进制数...进制是逢进一,而十六进制是逢十六进一,它们之间的每次进位差6,所以一个进制数要转换成BCD码,要先算清多进位的位数。...码转换为进制,代码如下所示: 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...(decimal - (decimal>>4) * 6); } ---- 参考资料: 1、进制与BCD码转换的算法 2、进制转BCD码在线工具

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

    C语言夺命题例,为啥C语言的总是这么恶趣味?

    前言 这些问题测试了C语言的高级知识,包括一些很少使用的特性。...好了接着给你来点接地气的题吧,如果你结构体学的不错,我想这题应该没什么难度 小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:870963251!...涨姿势: 结果:c=3 d=5 逗号运算符评估两个操作数并生成第二个值。它的优先级也低于赋值。因此c = a, b相当于c = a,而d = (a, b)相当于d = b。...好了看这么多了,我们不妨研究点有意思的新东西,在C++11 标准中有可变长参数的函数,接下来就看一看这样的使用。...如果你能耐心看题到这里,说明你是一位非常专注与C/C++的学习者或者成功者,有兴趣不妨关注代码下的学习场所。 6.如图所示程序的输出是什么?

    98630

    解了这C语言题,你敢说你学过C语言

    本文展示了10个C语言的迷题以及答案,而且有相当的一些例子可能是我们日常工作可能会见得到的。通过这些迷题,希望你能更了解C语言。 如果你不看答案,不知道是否有把握回答各个谜题?让我们来试试。...原因是:浮点数是4个字节,12.5f转成二进制是:01000001010010000000000000000000,十六进制是:0x41480000,进制是:1095237632。...这个示例向我们说明printf并不是类型安全的,这就是为什么C++要引如cout的原因了。 5 下面的程序输出是多少?并解释为什么?...其实很简单了,在C/C++中,以0开头的数字都是八进制的。 9 下面的输出是什么?...%s\n", "super"); printf(&a["WHAT%c%c%c %c%c %c !

    4623330

    解不了这C语言题,你敢说你精通C语言

    本文展示了10个C语言的迷题以及答案,而且有相当的一些例子可能是我们日常工作可能会见得到的。通过这些迷题,希望你能更了解C语言。 如果你不看答案,不知道是否有把握回答各个谜题?让我们来试试。...原因是:浮点数是4个字节,12.5f转成二进制是:01000001010010000000000000000000,十六进制是:0x41480000,进制是:1095237632。...这个示例向我们说明printf并不是类型安全的,这就是为什么C++要引如cout的原因了。 微信搜索公众号【C语言中文社区】关注回复C语言,免费领取200G学习资料 5 下面的程序输出是多少?...其实很简单了,在C/C++中,以0开头的数字都是八进制的。 微信搜索公众号【C语言中文社区】关注回复C语言,免费领取200G学习资料 9 下面的输出是什么?...%s\n", "super"); printf(&a["WHAT%c%c%c %c%c %c !

    47220

    c语言中char转换成string_字符数字转为int型

    sprintf(str,”%d”,a); ********************************************************************** C语言...因此’s’的含义其实和进制数115的含义是一致的。 而用双引号引起的字符串,代表的是一个指向无名数组起始字符的指针。 2、大小不同。 用单引号引起的一个字符大小就是一个字节。...number, string, 10);   printf(“integer = %d string = %s\n”, number, string);   return 0;   } atoi   C语言库函数名...《C++标准函数库》中说的 有三个函数可以将字符串的内容转换为字符数组和C—string 1.data(),返回没有”\0“的字符串数组 2,c_str(),返回有”\0“的字符串数组 3,copy()...aa.c_str(); cannot convert from ‘const char *’ to ‘char *’ const char *c=aa.c_str(); string.c_str()只能转换成

    2.9K10

    浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源

    ,只不过在 C++/C#/Java 这些语言中已经封装好了方法来避免精度的问题,而 JavaScript是一门弱类型的语言,从设计思想上就没有对浮点数有个严格的数据类型,所以精度误差的问题就显得格外突出...推荐阅读《JAVA 浮点数的范围和精度》 什么是IEEE-745浮点数表示法 IEEE-745浮点数表示法是一种可以精确地表示分数的二进制示法,比如1/2,1/8,1/1024 进制小数如何表示为转为二进制...计算机中的数字都是以二进制存储的,二进制浮点数表示法并不能精确的表示类似0.1这样 的简单的数字 如果要计算 0.1 + 0.2 的结果,计算机会先把 0.1 和 0.2 分别转化成二进制,然后相加,最后再把相加得到的结果转为进制...当然BCD编码就是为了进制高精度运算量制。 BCD编码 BCD编码(一般指8421BCD码形式)亦称二数或二-进制代码。用4位二进制数来表示1位进制数中的0~9这10个数。...相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使电脑作浮点运算时所耗费的时间。

    3.2K20

    浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源

    ,只不过在 C++/C#/Java 这些语言中已经封装好了方法来避免精度的问题,而 JavaScript 是一门弱类型的语言,从设计思想上就没有对浮点数有个严格的数据类型,所以精度误差的问题就显得格外突出...推荐阅读《JAVA 浮点数的范围和精度》 什么是IEEE-745浮点数表示法 IEEE-745浮点数表示法是一种可以精确地表示分数的二进制示法,比如1/2,1/8,1/1024 进制小数如何表示为转为二进制...计算机中的数字都是以二进制存储的,二进制浮点数表示法并不能精确的表示类似0.1这样 的简单的数字 如果要计算 0.1 + 0.2 的结果,计算机会先把 0.1 和 0.2 分别转化成二进制,然后相加,最后再把相加得到的结果转为进制...当然BCD编码就是为了进制高精度运算量制。 BCD编码 BCD编码(一般指8421BCD码形式)亦称二数或二-进制代码。用4位二进制数来表示1位进制数中的0~9这10个数。...相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使电脑作浮点运算时所耗费的时间。

    2.9K30

    使用Cython将Python代码转为C语言,从而提高代码保密性

    Cython Cython是Python编程语言和扩展 Cython 编程语言(基于Pyrex)的优化静态编译器。 它使得为 Python 编写 C 扩展就像 Python 本身一样容易。...将其转为机器语言才能更好的保护你的核心代码。另外一方面,Cython也带来了一些扩展,使得你可以通过添加静态类型声明,将原本的python代码的性能逼近纯C语言的性能。...(这不是我的主要目的,我的目的是将其转为C语言代码,然后进行编译,来加强保密性)。...而我们使用GCC也可以直接编译xxx.c,这说明Cython确实是直接将Python代码转为标准C语言代码。...编译命令如下: gcc -c tes.c -I /usr/include/python3.8/ -shared -fPIC -o tes.so 因为这个头文件不在C语言的标准搜索路径下面

    5K50
    领券