STM32F4_十进制和BCD码的转换
目录
前言
1. BCD码
2. BCD码和十进制转换的算法
前言
最近在学习STM32单片机(不仅仅是32)的RTC实时时钟系统的过程中,需要配置时钟的时间、日期;这些都需要实现BCD码和十进制之间进行转换。这里和大家一起学习BCD码和十进制之间转换的代码;
1. BCD码
BCD码是指用二进制数来表示十进制的数;也就是说4位二进制数来表示一位十进制数,因此二进制可以表示的最大十进制数为9(1001)。
因为二进制数能表示的最大十进制数才是9,所以当数字大于9时,也就是数字为两位数时,我们需要用8位BCD码来表示;4位的BCD码只能表示9以下的数字;遵循逢九进一的原则;
我们都知道:二进制是逢二进一,十进制是逢十进一,十六进制是逢十六进一,它们之间每次都差6,所以一个十进制想要转换成BCD码,必须先要算清楚进了几次位;
当两个十进制数相加:
但是如果相加最终的值位于10-15之间,也就是十六进制数的A-F之间,则需要加6进行修正;如果相加的值位于20-25之间,则需要修正2次,也就是加上2*6=12;就是这个道理;(每出现一次十六进制溢出9,就修正一次,溢出多少次,修正多少次)
多次修正的情况:比方说十进制下的66,66/10=6次,也就是说修正了6次,这里修正次数的意思是,出现一次十六进制下溢出9,就修正一次,(溢出第一次来到10-15,溢出第二次来到20-25,依次类推,总共溢出了6次,就是这个道理),所以需要加上6*6=36,所以最终的BCD码为66+36=102;
BCD码转十进制是一个道理:
2. BCD码和十进制转换的算法
十进制转换成BCD码,代码如下
//dec:十进制数 bcd:BCD码
int dec_bcd(int dec)
{return(dec+(dec/10)*6);
}
BCD码转换成十进制,代码如下
//dec:十进制数 bcd:BCD码
int bcd_dec(int bcd)
{return(bcd-(bcd>>4)*6);//该返回的意思是说:比如BCD码为10011,右移四位,空位补0会得到0001,//该值表示修正的次数,之所以这样,是因为四位的二进制表示不来大于9的十进制//所以才会引入8位BCD码,如果将8位BCD的高4位移回到低四位的位置,就会得到减去1111之后的数,该数就是修正的次数
}
相关文章:
STM32F4_十进制和BCD码的转换
目录 前言 1. BCD码 2. BCD码和十进制转换的算法 前言 最近在学习STM32单片机(不仅仅是32)的RTC实时时钟系统的过程中,需要配置时钟的时间、日期;这些都需要实现BCD码和十进制之间进行转换。这里和大家一起学习BCD码和十进制之…...
random — 伪随机数生成器(史上总结最全)
目的:实现几种类型的伪随机数生成器。 random 模块基于 Mersenne Twister 算法提供了一个快速的伪随机数生成器。Mersenne Twister 最初开发用于为蒙特卡洛模拟器生成输入,可生成具有分布均匀,大周期的数字,使其可以广泛用于各种…...
基于VBA实现成绩排序的最佳方法-解放老师的双手
作为一名老师,每到期末就要面对一件让人头疼的事情——成绩表统计。 首先,要收集每个学生的考试成绩。这需要花费大量的时间和精力,因为每个学生都有多门科目的成绩需要统计。 其次,要将每个学生的成绩录入到电子表格中。这看起来…...
OCAF如何实现引用关系和拓扑关系
在 OpenCASCADE 中,TDF_Label 是用来保存对象及其属性的基本单元。TDF_Label 可以通过添加不同类型的属性来保存不同的数据类型。属性是继承自 TDF_Attribute 类的对象,每个属性都有一个唯一的标识符(GUID)来识别其类型。TDF_Label是OpenCASCADE中用来管理数据的标签类,它…...
自动创建设备节点
在成功加载驱动模块之后,还需要使用 mknod命令创建设备节点,才能在/dev目录下创建对应的设备文件。自动创建设备节点的功能需要依赖 mdev 设备管理机制,在使用 buildroot 构建 rootfs 的时候,会默认构建 mdev 的功能,m…...
JavaWeb ( 六 ) JSP
2.4.JSP JSP (Java Server Pages) : 一种在服务器端生成动态页面的技术,本质上就是Servlet。将HTML代码嵌入到Java代码中, 通过Java逻辑控制HTML代码的结构从而生成页面。在MVC中通常担任视图层(view),负责信息的展示与收集。 2…...
2023世界超高清视频产业发展大会博冠8K明星展品介绍
2023世界超高清视频产业发展大会博冠8K明星展品介绍: 一、博冠8K全画幅摄像机B1 这是一款面向广电应用的机型,可适配外场ENG制作轻量化需求,应用于8K单边机位、新闻、专题的拍摄工作,也可应用于体育转播、文艺节目等特殊机位及各…...
Map接口以及Collections工具类
文章目录 1.Map接口概述1.1 Map的实现类的结构1.2 Map中存储的key-value结构的理解1.3 HashMap的底层实现原理(以JDK7为例)1.4 Map接口的常用方法1.5 TreeMap1.6 Map实现类之五: Properties 1.Collections工具类1.1方法1.1.1 排序操作(均为static方法)1.1.2 查找、替换 1.Map接…...
SOA协议DDS和Some/IP对比
SOME/IP 和 DDS 均已被纳入AUTOSAR AP的平台标准中。 SOME/IP 和 DDS是在不同的应用场景和不同的需求下诞生的技术,所以它们之间注定有很大的区别。 SOME/IP SOME/IP的全称为:Scalable service-Oriented MiddlewarE over IP,是一种面向服务…...
Sass使用
前言: 这份记录,主要是记录学习sass的学习记录,用于记录一些本人认为可能以后会用到的比较常用的一些知识点,更详细的请看sass官网 功能1-嵌套规则 Sass 允许将一套 CSS 样式嵌套进另一套样式中,内层的样式将它外层的…...
超大excel文件读,避免内存溢出
excel40M,但是用传统的读取excel方法,会报内存溢出的错误。 所以采用了下面的方式,能解决此问题: maven依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><ve…...
第0章 学习之前的准备
突然想写点关于linux的东西,一是将自己几十年来零碎的知识作以串联,二是能为正在学习路上的新手作些指引。而恰好作者的孩子是一位初一的学生,我写的这些东西也正是我手把手教授他的,现在分享出来并且命名为《linux中学教程》&…...
数组排序sort()方法
sort() 方法对数组的项目进行排序。 排序顺序可以是按字母或数字,也可以是升序(向上)或降序(向下)。 默认情况下,sort() 方法将按字母和升序将值作为字符串进行排序。 一、语法 array.sort(compareFunct…...
【.NET AI Books 前言】Azure OpenAI Service 入门
本书是为 .NET 开发者而写的,让 .NET 开发者能快速掌握 Azure OpenAI Service 的使用技巧。 ChatGPT 的到来意味着我们已经置身于 AI 引起的全新变革中,作为开发者你可能将面临几种改变: GPT 模型到来后,如何去架构好企业解决方案…...
散列查找实验(开散列) 题目编号:583
题目描述 请设计一个整型开散列表,散列函数为除留余数法,其中散列表的长度、除留余数法的模和关键码的个数由键盘输入,再根据输入由键盘输入所有的关键码。分别对三个待查值在散列表中进行查找,输出查找结果采用头插法。 输入描…...
Java版spring cloud 企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)
工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…...
Go type关键字定义新类型和类型别名的区别
type关键字再定义类型和类型别名有很大的区别,前者是新定义一个数据类型,后者是对类型的重命名。 type NewString stringtype OldString stringtype NewString string声明了一个NewString类型,和string具有完全一致的数据结构,确…...
Neural Network学习笔记2
torch.nn: Containers: 神经网络骨架 Convolution Layers 卷积层 Pooling Layers 池化层 Normalization Layers 正则化层 Non-linear Activations (weighted sum, nonlinearity) 非线性激活 Convolution Layers Conv2d torch.nn.Conv2d(in_channels, out_channels, ke…...
用@Value注解为bean的属性赋值
1.Value注解 Value注解的源码,如下所示 Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE}) Retention(RetentionPolicy.RUNTIME) Documented public interface Value {String value(); }从Value注解的源码中…...
拨云见日:深入理解 HTML 解析器与有限状态机
文章目录 参考描述状态机状态机有限状态机与无限状态机有限状态机与自动售货机无限状态机与计算器 HTML 解析器HTML 解析器HTML 与有限状态机 HTML 解析器的常见状态初始状态DOCTYPE 状态注释状态标签状态开始标签状态属性状态属性名状态属性值状态 结束标签状态自闭和标签状态…...
Java线程池及其实现原理
线程池概述 线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。 线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机…...
进程替换函数组介绍exec*
目录 前述 execl execlp execle execv execvp execvpe 前述 介绍后缀的意义: l (list):表示参数采用列表。 v(vector):参数同数组表示。 p(path):自…...
欧科云链OKLink:2023年4月安全事件盘点
一、基本信息 2023年4月安全事件共造约6000万美金的损失,与上个月相比,损失金额有所降落,但安全事件数量依旧不减。其中,Yearn Finance因参数配置错误,导致了1000多万美金的损失。同时,有一些已经出现过的…...
KubeVirt备份与还原方案【翻译】
KubeVirt备份与还原方案【翻译】 ref:https://github.com/kubevirt/kubevirt/blob/main/docs/backup-restore-integration.md 备份 为所有必需的k8s资源构建依赖关系图冻结应用程序pvc数据快照解冻应用程序将所有必需的k8s资源定义拷贝到一个共享的存储位置(可选…...
使用PyQt5设计一款简单的计算器
目录 一、环境配置: 二、代码实现 三、主程序 四、总结 本文使用PyQt5设计一款简单的计算器,可以通过界面交互实现加减乘除的功能,希望能够给初学者一些帮助。主要涉及的知识点有类的定义与初始化、类的成员函数、pyqt5的信号与槽函数等。…...
Htop使用说明
目录 引言 什么是htop htop安装 htop界面介绍 htop功能介绍 引言 我们使用服务器的时候常常需要关注下自己的程序资源占用情况,htop就是一种互动式的进程查查看器,整齐用下来感觉比top的逼格高,造作可视化都更方便些,我觉得还…...
PostgreSQL Linux安装
安装依赖: sudo yum -y install readline-devel zlib-devel 安装Postgres: ssh hadoophadoop001 #下载Postgres wget https://ftp.postgresql.org/pub/source/v14.2/postgresql-14.2.tar.gz tar -zxvf postgresql-14.2.tar.gz -C /data #编译前准备 /dat…...
亚商投资顾问 早餐FM/0509车辆电动化
01/亚商投资顾问 早间导读 1.上交所拟于5月11日举办“发现央企投资价值,促进央企估值回归”交流会 2.监管部门十方面举措加强房地产经纪行业管理 3.广东:推动城市公共服务及货运配送车辆电动化替代 4.昆山两楼盘因大幅降价被暂停网签:降幅…...
AI绘画天花板——Midjourney注册使用保姆级教程(5月5日验证有效)
大家好,我是可夫小子,关注AIGC、读书和自媒体。解锁更多ChatGPT、AI绘画玩法。加我,备注:aigc,拉你进群。 现在市面上AI绘图大概有三大阵营:Midjourney、Stable Diffusion,还有一个就是OpenAI实…...
学习笔记(2)项目结构描述 - manifest.json和pages.json
目录 1,manifest.json2,pages.json2.1,pages2.2,globalStyle2.3,tabBar 1,manifest.json 官方详情 uni-app 的 appid 由 DCloud 云端分配,主要用于 DCloud 相关的云服务,请勿自行修…...
wordpress auto get rss/全网线报 实时更新
今天要跟大家分享的这本期刊可以说是非常的“大名鼎鼎”了。在它“人生”中最辉煌的时候,仅仅4年时间,影响因子就从2.875分升高到5.5分,属于生理学(2区)/细胞生物学(3区)。对于投稿者非常友好,收稿范围极广,和生理学沾…...
织梦模板添加网站地图/sem竞价推广公司
对于通信系统而言,元器件的幅度和相位特性是影响性能的重要因素。矢量网络分析仪可提供此类器件的相关信息,包括放大器和晶体管等有源器件,以及电容器和滤波器等无源器件。而且,由于增加了时域功能,网络分析仪还能在测…...
web程序设计asp.net实用网站开发/怎么做电商卖东西
建议一:创业初期要聚焦重点,把一个产品做到极致 1989年,从深圳大学读完研究生,史玉柱开启了自己的创业之旅。 史玉柱把创业项目选在自己所熟悉的软件开发上。他的四人开发团队用了8个月的时间,对开发的软件进行了完善。…...
鞍山信息港官网/廊坊网络推广优化公司
实现的功能: 1.幻灯片自动播放 2.当幻灯片更换时对应的图片数字也变化,点击数字显示对应的图片 3.当点击上一张下一张显示对应的幻灯片 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title&…...
在美国建网站需要自己做服务器吗/网站空间租用
总结:1 document.querySelector() 的使用2 data-* 自定义属性的使用3 dataset 获取自定义属性值的使用转载于:https://blog.51cto.com/11871779/2333045...
个人网站备案名/太原高级seo主管
实现自动驾驶要分五步走: 第一步:仅有辅助监控的能力,所有的运营和维护的动态任务都是由人来完成。 第二步:系统基于已知规则重复地执行某一子任务,批量配置工具,简化人的操作,降低对运维人员的…...