[STM32F4] 如何通过一次除法,同时获得余数和商?

[复制链接]
735|10
 楼主| chenho 发表于 2019-11-16 13:39 | 显示全部楼层 |阅读模式
如何通过一次除法,同时获得余数和商?
stm32系列芯片、IAR环境


#include <stdlib.h>
div_t  x;
x=div(A,B);
C = x.quot;
D = x.rem;
这个函数倒是可以做到,但是这样我就没办法四舍五入了。
ousj 发表于 2019-11-16 13:42 | 显示全部楼层

一次除法?除不完怎么办?
期待实现方法
stly 发表于 2019-11-16 13:46 | 显示全部楼层
网上搜的,不知道对不对
#include <stdio.h>


// dividend, divisor, quotient and remainder should be replaced with variables instead of constant number
#define GET_DIV_AND_MOD(dividend, divisor, quotient, remainder)        \
__asm{        \
__asm push eax        \
__asm push edx        \
__asm mov eax, dword ptr[dividend]        \
__asm cdq        \
__asm idiv dword ptr[divisor]        \
__asm mov dword ptr[quotient], eax        \
__asm mov dword ptr[remainder], edx        \
__asm pop edx        \
__asm pop eax        \
}


void main(void)
{
int a = 9, b = 4;

int quo=0, rem=0;

//GET_DIV_AND_MOD(a, b, quo, rem);

quo = a / b;

GET_DIV_AND_MOD(a, b, quo, rem);

         printf("The quo is: %d, and the rem is: %d\n", quo, rem);
}
llljh 发表于 2019-11-16 13:53 | 显示全部楼层
自己写个子程序好了;
stly 发表于 2019-11-16 13:57 | 显示全部楼层
不是有成品函数吗
keaibukelian 发表于 2019-12-10 12:14 | 显示全部楼层
别用除法  太慢了
wangjiahao88 发表于 2019-12-10 12:33 | 显示全部楼层
感觉不太好做。都是分两步做的。
wangjiahao88 发表于 2019-12-10 12:34 | 显示全部楼层
或者用硬件乘法器。做出来之后,进行数据分离!
wangjiahao88 发表于 2019-12-10 12:34 | 显示全部楼层
你这是要做什么?是要做鉴相吗?
heimaojingzhang 发表于 2019-12-10 12:49 | 显示全部楼层
用左右移位就行
guanjiaer 发表于 2019-12-10 12:55 | 显示全部楼层
太耗费资源了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

748

主题

9853

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部