当前位置:首页 > 单片机 > 单片机
[导读]从业十年,教你单片机入门 第23讲:不管是以前讲的加法,现在讲的减法,还是未来讲的乘法和除法,我都会强烈建议“请把所有参与运算的变量都转成unsigned long类型”。unsigned long变量是三种数据类型中

从业十年,教你单片机入门 第23讲:

不管是以前讲的加法,现在讲的减法,还是未来讲的乘法和除法,我都会强烈建议“请把所有参与运算的变量都转成unsigned long类型”。unsigned long变量是三种数据类型中取值范围最大的数,取值范围可达0到4294967295之间,用了此类型变量的运算,不会轻易导致运算溢出的问题。有细心读者会问,万一数据超过了4294967295怎么办?答:可用BCD码的数组方式进行运算。这种数组运算的方法我在《从业将近十年,手把手教你单片机程序框架》里用了好几个章节跟大家介绍过,初学者暂时不用深入学习它。

变量转换的方法是引入中间变量,有多少个需要转换的变量就引入多少个中间变量,请看下面这个例子。

转换之前:

unsigned int a;

unsigned char x=195;

unsigned long y=101;

a=x-y;

分析:上述公式用到3个变量,其中a和x都不是unsigned long变量,因此需要为它们分别引入中间变量t和s。

转换之后:

unsigned int a;

unsigned char x=195;

unsigned long y=101;

unsigned long t; //引入的中间变量,用来替代a

unsigned long s; //引入的中间变量,用来替代x。

s=0; //s在接收x原数据之前先把高位和低位全部清零。因为s和x的数据宽度不一。

s=x; //接收x原数据,相当于把x转换成unsigned long中间变量。

t=s-y; //此处的t就默认代表了变量a。

本章虽短,但是此方法在实际项目中很重要,大家不可大意。

下节预告:乘法运算的5种常见格式。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

为了加强北美管理团队,扩大北美市场,HRS任命旅行科技高管Will Pinnell为高级副总裁企业旅行采购专家Pauline Robin为采购咨询与供应商关系副总裁。 德国科隆和纽约2023年8月14日 /美通社/ -...

关键字: RS PI GB BCD

单片机内部有很多的特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般我们会根据寄存器功能的不同给寄存器赋予各自的名称,当我们需要在程序中操作这些特殊功能寄存器时,必须要在程序的最前面将这些名称加以声明,声明的...

关键字: C51 数据类型 扩充定义

数据元(Data Element),也称为数据元素,是用一组属性描述其定义、标识、表示和允许值的数据单元,在一定语境下,通常用于构建一个语义正确、独立且无歧义的特定概念语义的信息单元。数据元可以理解为数据的基本单元,将若...

关键字: C51 数据类型

(全球TMT2022年6月9日讯)韩国唯一一家纯晶圆代工公司启方半导体(Key Foundry)宣布,将发布用于低功耗PMIC的0.18微米30V非外延BCD工艺。BCD是一种将双极晶体管(Bipolar)、互补金属氧...

关键字: BCD 低功耗 半导体 电源管理芯片

今天,我们来聊一道常见的考题,也出现在腾讯面试的三面环节,非常有意思。具体的题目如下:文件中有40亿个QQ号码,请设计算法对QQ号码去重,相同的QQ号码仅保留一个,内存限制1G.这个题目的意思应该很清楚了,比较直白。为了...

关键字: 腾讯 BITMAP UNSIGNED 内存

今天,我们来聊一道常见的考题,也出现在腾讯面试的三面环节,非常有意思。具体的题目如下:文件中有40亿个QQ号码,请设计算法对QQ号码去重,相同的QQ号码仅保留一个,内存限制1G. 这个题目的意思应该很清楚了,比较直白。为...

关键字: BITMAP UNSIGNED 内存 腾讯

一直觉得C语言较其他语言最伟大的地方就是C语言中的指针,有些人认为指针很简单,而有些人认为指针很难,当然这里的对简单和难并不是等价于对指针的理解程度。为此在这里对C语言中的指针进行全面的总结,从底层的内存分析,彻底让读者...

关键字: 微信 C语言 UNSIGNED INCLUDE

Perl是一种弱类型语言,所以变量不需要指定类型,Perl解释器会根据上下文自动选择匹配类型。Perl有三个基本的数据类型:标量、数组、哈希。以下是这三种数据类型的说明:序号类型和描述1标量标量是Perl语言中最简单的一...

关键字: 数据类型

摘要:给出了一种运用于高压DC-DCBUCK转换器的新型高,性能误差放大器的设计方案。其核心模块采用差分运算跨导(OTA)三级放大结构来实现高增益,低时延等性能,同时采用0.6BCDHSPICE模型进行了仿真。结果表明:...

关键字: 误差放大器 CMRR PSRR BCD

写在前面单片机中有看门狗,长时间不喂狗,程序就会复位。为什么长时间不喂狗呢?是因为程序跑飞了,抛开外部因素不谈,今天和大家分享一下单片机程序跑飞的几个原因。在编写单片机程序的时候,由于中断服务程序写的不好,导致单片机程序...

关键字: 单片机程序
关闭
关闭