您的位置 首页 新品

第27节:整除求商的运算

从业十年,教你单片机入门第27讲:C语言中,乘法符号不是times;而是*,除法求商的符号不是divide;而是。乘除法符号跟我们日常用的数学

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

C言语中,乘法符号不是“×”而是“*”,除法求商的符号不是“÷”而是“/”。乘除法符号跟咱们日常用的数学符号有点不相同,我个人猜想C言语这样规则的原因是由于“×”简单跟大写字母“X”搞混,而“÷”这个符号在电脑键盘上不方便直接输入,故分别用“*”和“/”代替。

何谓“整除”?请看以下两个比照比方:

10除以4,商等于2.5。——(带小数点)

10除以4,商等于2,余数是2。——(这就叫做整除)

什么时候带小数点,什么时候是整除?取决于参加运算的变量类型。规范的C言语中,其实远远不止我前面所说的unsigned char ,unsigned int ,unsigned long这三种类型,还有一种叫浮点数的float类型,当参加运算的变量触及float类型时,就可能存在小数点。这是题外话,咱们大约知道有这么一回事即可,暂时不必深入研究float等其它类型的数据,由于在单片机项目中,只要用我所述的三种常用类型就肯定够用了,单片机不必触及float类型,假如项目触及小数点的显现和处理,咱们彻底可以用那三种类型去处理它,这些处理办法我后续会讲到,暂时不必管。而unsigned char ,unsigned int ,unsigned long这三种类型的除法都是整除,我后续所讲的一切章节内容也都是整除。

整除的通用格局:

“保存变量”=“被除数” / “除数1” / “除数2”… / “除数N”;

跟之前讲的加减运算相同,左面的“保存变量”有必要是变量,右边的可所以变量和常量的恣意组合。假如右边只要两个参加运算的数据,便是整除的常见格局。

整除的常见格局:

“保存变量”=“被除数” / “除数” ;

现在从整除常见格局的6个方面来剖析它的规则。

(1)当“除数”等于0时。咱们都知道,数**算除数是不允许等于0的,假如在单片机中非要让除数为0,商会呈现什么成果?我试过,发现有一个规则:假如“除数”是变量的0,那么商等于十进制的255(十六进制是0xff)。假如“除数”是常量的0,那么商等于十进制的1。比方:

a=23 /y; //假定除数变量y里边是0,那么a的成果是255(十六进制的0xff)。

b=23 /0; //除数是常量0,那么b的成果是1。

(2)当被除数小于“除数”时。商等于0。比方:

c=7 / 10; //c的成果是0。

(3)当被除数等于“除数”时。商等于1。比方:

d=10/ 10; //d的成果是1。

(4)当被除数大于“除数”时。商大于0。

比方:

e=10/ 4; //e的成果是2。

f=10/ 3; //f的成果是3。

(5)自除运算的简写。跟前面加减法相同,当“被除数”是“保存变量”时,存在自除运算的简写。

“保存变量”=“保存变量” / “除数” ;

上述自除运算的简写如下:

“保存变量” / =“除数” ;

比方:

g/=5; //相当于g=g/5;

加减法有自加1“++g”和自减1“g–”的特别写法,可是除法不存在这种自除1的特别写法,由于一个数除以1仍是等于它本身,所以自除1没有任何含义,因而C言语语法中没有这种写法。

(6)除法的溢出规则跟加法的溢出规则是相同的,所以不再多举比方。在实践项目中,为了防止一不小心就溢出的问题,我强烈建议,不论加减乘除,但凡参加运算的变量悉数都要转化成unsigned long变量,转化的办法也跟加减运算的转化办法共同,不再具体解说这方面的内容。

现在编写一个程序来操练方才讲到的内容,最终把程序编译后下载到坚鸿51学习板调查成果。请直接仿制第十节模板程序,修正的main程序代码如下:

void main() //主程序

{

/*—C言语学习区域的开端—————————————————————————*/

unsigned char a;

unsigned char b;

unsigned char c;

unsigned char d;

unsigned char e;

unsigned char f;

unsigned char g=10; //初始化为10

unsigned char y=0; //除数变量初始化为0。

a=23/y;

b=23/0;

c=7/10;

d=10/10;

e=10/4;

f=10/3;

g/=5; //相当于g=g/5;

GuiWdData0=a; //把a这个变量放到窗口变量0里边显现

GuiWdData1=b; //把b这个变量放到窗口变量1里边显现

GuiWdData2=c; //把c这个变量放到窗口变量2里边显现

GuiWdData3=d; //把d这个变量放到窗口变量3里边显现

GuiWdData4=e; //把e这个变量放到窗口变量4里边显现

GuiWdData5=f; //把f这个变量放到窗口变量5里边显现

GuiWdData6=g; //把g这个变量放到窗口变量5里边显现

/*—C言语学习区域的完毕—————————————————————————*/

while(1)

{

initial();

key_service();

display_service();

}

}

检查运算成果的办法。如安在坚鸿51学习板上调查变量?按下S1或许S5按键即可切换显现不同的窗口,然后显现不同的变量。按下S9按键不松手就可以切换到十六进制的显现界面,松开手后会主动切换到十进制的界面。上坚鸿51学习板调查程序履行的成果如下:

变量a为255(十六进制是0xff)。

变量b为1。

变量c为0。

变量d为1。

变量e为2。

变量f为3。

变量g为2。

下节预告:整除求余的运算。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/262151.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部