在C中处理小数而没有浮点数

时间:2018-11-12 12:29:00

标签: c microcontroller bitwise-operators

我在C语言中遇到问题,我不允许使用浮点数,因为将要刷新的微控制器不支持该数据类型。现在,我所有的整数都应按要求四舍五入。我该如何处理?

一项简短的研究表明,使用了按位运算,例如左移和右移。我知道这些操作是什么。但是我不知道如何使用这些操作来实现我想要的。

2 个答案:

答案 0 :(得分:1)

另一种可能性是Q number format

如果您使用Google“ Q号格式”或其他变体,您将获得一些结果。 它经常用于C中与DSP有关的一些主题。Here另一篇博客文章解释了数字格式,here是C中q数的示例代码实现。

通常,您可以说q数表示-1到1之间的数字,而无需使用浮点算术。

答案 1 :(得分:0)

通常,微控制器没有浮点单元,所有东西都可以使用整数。但是由您自己决定要使用哪个单位作为整数。

例如:
100可以是100厘米或1,00 m

1000可能是100,0 cm或1,000 m,依此类推。

请查看说明: electronic.stackexchange