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

[复制链接]
1773|4
 楼主| pjzmj2012 发表于 2018-5-19 11:37 | 显示全部楼层 |阅读模式
本帖最后由 pjzmj2012 于 2018-5-20 23:28 编辑

如何通过一次除法,同时获得余数和商?
stm32系列芯片、IAR环境


#include <stdlib.h>
div_t  x;
x=div(A,B);
C = x.quot;
D = x.rem;
这个函数倒是可以做到,但是这样我就没办法四舍五入了。

Lewisnx 发表于 2018-5-19 11:44 | 显示全部楼层
一次除法?除不完怎么办?
期待实现方法
CCompton 发表于 2018-5-19 11:59 | 显示全部楼层
网上搜的,不知道对不对
#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);
}
mmuuss586 发表于 2018-5-19 12:29 | 显示全部楼层
自己写个子程序好了;
mcu5i51 发表于 2018-5-20 15:52 | 显示全部楼层
不是有成品函数吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

131

帖子

1

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