【发布时间】:2013-05-07 14:53:04
【问题描述】:
我需要将一个数字转换为我的 DAC 最大值 (0x0FFF) 的百分比,所以我的代码是这样的:
double percent;
short pct;
percent = (0x0FFF * pct)/100;
但我需要一个 16 位的值来发送到 DAC,而不是 32 位的值。将其转换为 16 位数字的最快方法是什么?可以搬进去吗?
【问题讨论】:
-
只需将
percent声明为uint16_t?计算是在类型int上完成的,所以除非你的ints 小于20 位宽,否则它不会溢出。对于 16 位的ints,可以使用0x0FFFul来避免溢出。 -
@DanielFischer,尽管它们很可能是 16 位宽(事实上,在大多数谈论 DAC 有意义的平台上,它们是)。
-
@phuclv 为什么要编辑这篇文章,在我发布它 6 年后已经编辑过一次?你完全歪曲了我的问题......
-
我只是在修正一些拼写/语法错误。以何种方式“扭曲”?
-
不是为了任何东西,但这感觉就像人们只是想通过编辑帖子来获得经验值。 6 年后,这篇文章对修正语法没有任何好处。
标签: c percentage 32-bit 16-bit