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

C语言:十进制、BCD互换

目录 1、复杂版 2、简易版 ---- 最近写单片机 RTC 日期、时间配置,需要实现十进制、BCD互换,将示例Demo分享给各位朋友: BCD是指用二进制来表示十进制数的编码,即:4位二进制来表示一位十进制数...一个四位的BCD不能够表达十进制的两位数,因此当数字大于九时,我们需要用八位BCD来表示。高位只需要逢九进一即可。...例如,十进制99进位了99/10=9次,每次进位和十六进制进位相比差6,所以一共差了9×6=54,即BCD为:99+54=153(十六进制:0X99)。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

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

    哈夫曼实现文件压缩压缩c语言

    写一个对文件进行压缩和解压缩的程序,功能如下: ① 可以对纯英文文档实现压缩和解压; ② 较好的界面程序运行的说明。...当利用霍夫曼编码对一篇英文进行压缩时,e极有可能用一个比特来表示,而z则可能花去25个比特(不是26)。普通的表示方法时,每个英文字母均占用一个字节,即8个比特。...:读取文件各参数、转换成二进制、按求对应字符、写入存储文件 #define _CRT_SECURE_NO_WARNINGS #include #include <stdio.h...{ for (i = 0; i < 8; i ++) //按照八位二进制数转化成十进制ASCII写入文件一次进行压缩...//读取原文件各参数 for (i = 0; i < n; i ++) //读取压缩文件内容并转换成二进制

    2.4K20

    keil编程C语言

    单片机需要用到C语言作为程序来对它发出指令,而单片机需要C语言的hex类型文件作为传输,而KEIL 是众多单片机应用开发软件中优秀的软件之一, 且能够生成hex文件,它支持众多不同公司的 MCS51 架构的芯片...,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C 语言的程序设计。...接下来我们可以来尝试一下keil来编程C语言. 1、首先是打开keil软件,打开后显示的界面如下。...4、接下来会出现如下图所示画面,是跳入C函数之前执行的一段汇编代码,不加就用默认的启动代码,加了你没修改这段代码,那还是相当于默认的启动代码,这时加和没加都一样。...6、点击保存按钮后出现下第一张图所示对话框,在箭头所指的地方输入源文件名称加后缀名(如果你是C语言编写程序后缀名为*.c;如果你是用汇编语言编写程序则后缀名为*.asm)并点击确认保存。

    15K30

    C语言实例_数据压缩与解压

    一、压缩与解压介绍 数据压缩是通过一系列的算法和技术将原始数据转换为更紧凑的表示形式,以减少数据占用的存储空间。数据解压缩则是将压缩后的数据恢复到原始的表示形式。...尤其在低带宽、高延迟的网络环境中,压缩可以显著改善传输性能。 (3)文件压缩压缩工具如ZIP、RAR等常用于对文件进行打包和压缩,以减小文件的大小,便于存储和传输。...二、ZIP格式介绍 ZIP是一种常见的文件压缩格式,它使用DEFLATE算法来进行数据压缩。 下面是ZIP压缩的基本原理: (1)文件分块:ZIP压缩将要压缩的文件按照一定大小的块进行划分。...三、C语言实现压缩和解压算法 3.1 代码框架 下面是使用C语言实现压缩和解压的代码框架(下一章再实现完整的算法): #include #include void...下面使用C语言自行实现的LZ77压缩和解压算法完成压缩和解压: #include #include #include #define MAX_WINDOW_SIZE

    59240

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

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

    7.7K20

    16位汇编第七讲汇编指令详解第第三讲

    十进制数调整指令对二进制运算的结果进行十进制调整,以得到十进制的运算结果 2.分成压缩BCD和非压缩BCD调整 简而言之:          以前的时候你有个手表,里面的数字是九,如果加一个1就是0...了,就会产生进位, 不过这个是10进制进位的,所以应该是 a了,但是a的话就出错了.所以我们就出来了这个调整指令直接变为零,然后进位,也就是16进制当做10进制使用 压缩BCD          压缩...        40H 压缩BCD      08H        64H 非压缩BCD  08H        0604H 可以看出,8如果是个位数,是不变的 如果64那么压缩的是4位表示一个数字非压缩的就是...压缩BCD吗的加减调整指令 DAA(加法的调整指令) DAS (减法的调整指令) DAA 后缀A是Add的意思,后缀s是Sub的意思 例子 mov al,68h ;压缩BCD是68 mov bl...BCD加法:68-28=40 非压缩BCD的加,和减法的调整指令 AAA,AAS 例子          mov ax,0109  (其实是想显示19)          mov al,1

    1.6K50

    c语言实现文件操作

    文件的打开和关闭 我们下面两个函数实现文件的打开和关闭 对于fopen来说,第一个参数传入一个文件的名字,第二个为打开的方式,返回值为一个文件指针,如果打开失败就返会NULL fclose里的参数为传入一个文件指针...我们来看具体的例子 int main() { FILE* pf = fopen("text.txt", "r");//pf来接收 if (pf == NULL) { perror("fopen...; pf = NULL; return 0; } 可以看出,fprintf的参数类型只比printf多了一个流 文件的读取 接下来介绍一下fgetc()函数,如果读取成功,返回的是字符的ASCII值...= 'a'; c <= 'z'; c++) { fputc(c, pf); }*/ char a1 = fgetc(pf); printf("%c\n", a1); char a2= fgetc...,讲函数返回值接受并以字符形式打印,读取是按照顺序依次往下读取,根据读取到文件末尾返回值为EOF,可以一个循环来实现对文件中所有字符进行遍历。

    10810
    领券