首先定义123放在整型变量中:例
c52单片机求余 单片机求模求余
c52单片机求余 单片机求模求余
#include
#define uint unsigned int
uint aa;
uint bb;
main()
{aa=123/10;
bb=123%10;
}应该是没有问题的!
下次把题目更细分一下,标明单片机,这样分类就不会转让语言类。进入这个的应该都是学c的,不是学单片机的,我学过单片机,但是忘的不多了
我试着分析一下功能:
#include "stc.h"
#include "hjc52.h"
#include "delay.h"
int a;
int b;
it DU=P2^0;
it WE=P2^1;
void Timer() ///定时 在这个程序中有什么用?????很久没有弄,忘了。感觉没有用到?
{TMOD|=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
}void main()
{unsigned int SMG[10]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f}; //表示数字
hjc52_init();//HL-1/HJ-3G/HJ-C52主板初始化函数
a=1;
b=0;
EA=1;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
while(1)
{DU=1; //p2_0 控制
P0=SMG[b]; //给数字导p0 端口
DU=0; //断开
WE=1; //这里应该是用于保持吧????
P0=0xfe;
WE=0;
while(a); //等待中断
DU=1;
P0=SMG[b];
DU=0;
WE=1;
P0=0xfe;
WE=0;
while(~a);
}}
void Init_Key0() interrupt 0 //加
{b++;
if(b>9)
b=0;
a=~a;
}void Init_Key1() interrupt 2 //减
{b--;
if(b<0)
b=9;
a=~a;
}一开始有数据吗?
填空:
0%2=0
1%2=1
2%2=0
3&2=1
4%2=0
0/2=0
1/2=0
2/2=1
3/2=1
4/2=2
C语言中的求余和整除的计算是如何定义的
:求余是指点一个数除以另一个数,不够除的部分就是余数,就是求余的结果.
整除就是一个数除以另一个数,刚刚好的倍数,这里没有四舍五入,不够一倍的都将舍去.
0,1,0,1,0,0,0,1,1,2
求余就是%,比如1%2的话,就剩1,3%2的话也是余1啊,整除的理解就是看前面的
7/(除以)2=3...1(余数)
7/2=3,7%2=1
求余符号“%”比如“i=52%10”运算结束i=2,就是这么算的!在C语言中拆分多位数字一般这样用!比如把321这个数拆出百位实为个位分别放在hc1,hc2,hc3中就可以hc3=321%10;hc3=1;因为321除以10商=32余数为1
hc2=321/10;hc2=32;因为321除以10商=32
hc2=hc2%10;hc2=2;因为32除以10余数为2
hc1=321/100;
例如:
int i,j,k;
j=i/10;
k=i%10;
如i=78,则j=7,k=8;k就是i除以10的余数
比如 8%3=2;10=0;3%2=1;3%4=3;就是求余数这么简单 不要想多了
ORG 0000H
MOV R0, #80H
MOV R1, #31H
MOV R2, #94H
CALL R01_R2 ;R0R1 / R2 ---> R3...R1
;8031H / 94H = DDH ... 6DH
SJMP $
;---------------------------------
R01_R2: ;R0R1 / R2 ---> R3...R1
INC R0
MOV R3, #0
LOOP0:
CLR C
MOV A, R1
SUBB A, R2
JC LOOP2
LOOP1:
MOV R1, A
INC R3
SJMP LOOP0
LOOP2:
DJNZ R0, LOOP1
RET
;---------------------------------
END
最普遍有效的方法是通过减法循环来得到除法结果:
mov r3,#0
loop:
mov a,r1
subb a,r2
inc r3
jnc loop
djnz r0, loop
mov b,r2
div a,b
add a,r3
mov r0,a
mov r1,b
end
就这样了,有什么疑问可以联系我。
版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。