首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C语言,不使用浮点数执行简单计算的方法。

C语言,不使用浮点数执行简单计算的方法。
EN

Stack Overflow用户
提问于 2022-11-18 14:00:40
回答 1查看 46关注 0票数 0

是否有任何方法、代码片段或库不使用浮点数来执行简单的计算(乘法、除法、和、减)?

我在8位单片机上用C语言编写,没有浮点单元,所以浮点运算非常长。我想把我所有的浮点计算转换成整数。

我可以允许在初始化时进行浮点计算,例如从浮点系数计算整数系数。

EN

回答 1

Stack Overflow用户

发布于 2022-11-18 14:07:02

使用一个或两个数字作为小数部分来缩放整数。例如,345可以解释为3.45。所有的算术(几乎)都完全一样。

示例:

代码语言:javascript
复制
int mult(int a, int b)
{
    long long result = ((long long)a * b) / 100;
    if(result > INT_MAX || result < INT_MIN) { /* do something */}
    return result;
}

int divide(int a, int b)
{
    return b ? ((long long)a * 100) / b : 0;
}


int main(void)
{
    int result = divide(500, 3000);
    printf("%d.%d\n", result / 100, result % 100);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74490805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档