① 51单片机怎样从一个非常大的数字里面提取个十百千万位等......
下面举例说明万千百十个的表示方法。其实很简单,用除法取余就行。
i=a/b ;//取商
i=a%b;//取余
方法很多,以下是一例:
unsigned int wan,qian,,shi ,ge,
wan=i/10000;//除一万取商,是万位。
qian=(i/1000)%10;//先除1000,取商,商的个位是千位,所以再除10 取余。
=(i%100)/10%10;//先除100,取商,商的个位是百位,所以再除10 取余。
shi=(i%100)/10;//先除100,取余,商再除10 取余。
ge==(i%10;//除10取余。
不过阁下要知道整形量最大是65535,假如你的数据达到999999,你就要定义长整形量了。
unsigned long int i=999999;
如当I<10的时候 P0=table[i/10]; 个位
这样的算法 我写的不行 ,请高手写下 ,我看下我的出错在什么地方
i/10是取商啊,怎么可能是个位呢?是十位。I<10的话,一定是0了。
移位的方法不行,移位是2进制运算。你这个是十进制。
② 51鍗旷墖链烘眹缂栬瑷鎸夐敭鎺у埗鏁扮爜绠″姞1锷犲埌999
镐濊矾鏄瀵圭殑锛岀粏鑺傛弿杩版湁闂棰桡纴绠楀啿鎱庢硶鎻忚堪瑕佷弗璋ㄣ备负浠涔堣99镞舵竻闆跺晩锛屾暎𨰾嗘暚杩椤彲鑳藉氨鏄阌栾镄勫湴鏂逛简銆
绯荤粺鍒濆嫔寲镞讹纴娓呴櫎浣跨敤鍒扮殑瀵勫瓨鍣锛侊紒铹跺悗锛屽綋闇瑕佸姞1镞跺仛濡备笅锷ㄤ綔
瀵勫瓨鍣╝ = a+1
濡傛灉瀵勫瓨鍣╝ == 100锛寋瀵勫瓨鍣╞=b+1锛涘瘎瀛桦櫒a = 0}
杩欐牱灏卞彲寰″苟浠ヤ简锛宐涓镄1浠h〃100锛宎涓镄1灏辨槸1
③ stm32单片机的算法是什么
STM32单片机并没有特定的算法,而是含祥一种基于ARM Cortex-M内核的微控制器。它集成了许多硬件模块和接口,可用于实现多种不同的应用程序。
在使用STM32单片机时,通常可以使用各如禅种算法来实现所需要的功能,例如:
1. 手写指令:通过手写汇编指令的方式实现特定的功能,如数字信号处理、控制算法等。
2. 嵌入式C编程:嵌入式C语言编程可以更方便地开发STM32单片机应用程序,并且C编译器支持对ARM Cortex-M内核进行优化。
3. 算法库:STM32单片机配渣老尘备有各种内置算法库,以及第三方提供的算法库。包括数学函数库、外设操作函数库、网络协议库等等。
总之,STM32单片机并没有特定的算法,而是一种灵活的、可定制的微控制器。使用STM32单片机时,可以根据具体需求选择适当的算法或编程方式,以实现目标功能。
④ 8位单片机怎么进行十六位除十六位,最好有程序
二进制除法运算
多字节二进制除法
被除数为3个字节,在wr2_wr1_wr0单元中,wr2.7为最高位,wr0.0为最低位.
除数为2个字节,在wr9_wr8中。
算法:EM78单片机没有除法指令,而且本例中除法为多字节除法,可采用如下算法.
将被除数扩充一个字节0X23_0X22清0.被除数左移1位,0X23_0X22中数据减去0X31_0X30中数据.够减则减且0X20.0置1,减出结果存入0X23_0X22
不够减则0X23_0X22保持不变,0X20.0清0。
然后被除数再左移1位,重复上述过程。共循环16次,最后0X23_0X22中得相减余数,0X21_0X20中得商。
注意,若被除数左移后C标志为1,则不比较0X23_0X22与0X31_0X30数据大小关系而直接相减。
main: mov a,@0x55 ;被除数赋值
mov wr0,a
mov wr1,a
mov wr2,a
mov a,@0x0 ;被除数扩充1字节并清0
mov wr3,a
mov a,@0x12 ;除数赋值
mov wr8,a
mov wr9,a
mov a,@0x10 ;循环次数为16
mov wr7,a
again: call rt_sub ;调移位除法子程
djz wr7 ;16次循环完成则结束
jmp again ;未完成则继续
self: jmp self
rt_sub:
bc 0x03,0 ;c标志清0
rlc wr0 ;被除数左移1位
rlc wr1
rlc wr2
rlc wr3
jbc 0x03,0
jmp rt3 ;c标志为1则直接相减
mov a,wr3 ;c标志为0则先比较大小
mov wr5,a
mov a,wr2
mov wr4,a
mov a,wr9 ;先比较高位
sub wr5,a
jbc 0x03,2
jmp rt1 ;高位相等跳rt1比较低位
jmp rt2 ;高位不等跳rt2
rt1: mov a,wr8 ;比较低位
sub wr4,a
jbc 0x03,2
jmp rt3 ;低位也相等则跳rt3,相减,上1
rt2: jbs 0x03,0
ret ;减数大则返回,减数小则相减,上1
rt3: bs wr0,0 ;上1
call sub_2b ;调2字节减法子程
ret
sub_2b:
mov a,wr9 ;高字节相减
sub wr3,a
mov a,wr8 ;低字节相减
sub wr2,a
jbc 0x03,2
ret ;低字节相等,无借位,返回
jbc 0x03,0
ret ;无借位,返回
dec wr3 ;低字节相减有借位,高字节结果减1
ret
eop