发布网友 发布时间:2022-04-20 16:40
共4个回答
热心网友 时间:2023-06-28 16:44
以上的能是能算,但是,最后看你结果的变量取的是什么类型的变量,如果是整,那么结果如果有小数就不会计入,如果是取浮点,那就能保留小数 ,不如你先把后面的数先放大10000倍,做好结果后,再把结果除以10000,直接输出就完事。做AD时,我常用的办法。不用引出浮点计算。]
热心网友 时间:2023-06-28 16:44
没问题,可以的。至于楼上说的浮点计算耗时的问题,其实这都是在教材里说得,说的都是80年代的情况,那时的单片机运行速度确实困难;现在的单片机不但速度快,而且资源丰富,基本上不用你去过多得考虑效率的问题了。 真要考虑的话,你也可以直接*625就可以了,你自己知道结果是扩大了1w倍就好了。]
热心网友 时间:2023-06-28 16:44
对单片机来说,不管任何进制的数字,在单片机内部都是二进制表示的。所以能直接运算。\x0d\x0a但是单片机计算浮点数是非常耗时的,因此要优化算法,比如你的乘以0.0625等价于除以16(1÷16=0.0625),而除以16等价于算数右移4位,这样的运算比直接乘以0.0625快几十倍。]
热心网友 时间:2023-06-28 16:45
这个问题很简单!编译器自动把十进制转成二进制,然后写入单片机。
但是你举的例子0.0625.这个小数,编译器肯定是不干啊。