gpt4 book ai didi

c++ - 将代表位置的整数分解为多个部分并再次返回

转载 作者:行者123 更新时间:2023-11-28 05:08:07 30 4
gpt4 key购买 nike

我正在使用一些硬件来表示电机的绝对位置,使用无符号整数。规范告诉我一位数字代表 100nm。

那么值 100,000 就是 <=> 10mm,因为 100,000 x 100 == 10,000,000 nm <=> 10mm。

为了让用户能够精细控制电机,使用如此大的数字是不切实际的。所以我使用它的 mm、um 和 nm 部分来表示数字。我可以得到那些作为

//Input number x 100 -> value in nm
unsigned int nmVal = input * 100;
unsigned int mmValue = (nmVal / 10000000 % 10) * 10 + (nmVal / 1000000 % 10);
unsigned int umValue = (nmVal / 100000 % 10) * 100 + (nmVal / 10000 % 10) * 10 +
(nmVal / 1000 % 10);
unsigned int nm = (nmVal / 100 % 10) * 100;

我可以在 UI 中将它们呈现为三个编辑框中的 mmValue + umValue + nmValue。

然后用户可以轻松修改 nm 部分,而无需担心其他部分。

问题是,如何从“部分”转为表示位置的整数,使用 double ?

如果我只是添加数字,即

int position = mmVal * 1e-3 + umVal*1e-6 + nmVal*1e-9

变量位置将为零。

最佳答案

反过来说:

position_t nmPos = mmVal * 1e6 + umVal * 1e3 + nmVal;

关于c++ - 将代表位置的整数分解为多个部分并再次返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44167237/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com