将秒和纳秒转换为微秒的最快(最佳时间)方式

Ste*_*e H 0 c timer

我想在C中编写函数,需要几秒和几纳秒作为输入.将秒和纳秒转换为微秒,以微秒为单位返回总数.

unsigned long long get_microseconds(int seconds, unsigned long long nSeconds);
Run Code Online (Sandbox Code Playgroud)

现在转换非常简单.我可以使用以下公式 -

mSeconds =秒*1000000 + nSeconds/1000(纳秒转换精度损失不错,我的计时器无论如何最小分辨率为100微秒)

如果不使用乘法和除法运算符来获得最佳精度和最小数量的cpu周期,那么实现此等式的最快方法是什么.

编辑:我正在使用基于GNU但定制设计的工具链的自定义DSP上运行.我还没有真正测试过算术运算的性能,我只是想知道它是否会影响性能,是否有办法改进它.

Ami*_*mit 6

return Seconds*1000000 + nSeconds/1000;
Run Code Online (Sandbox Code Playgroud)

如果有值得进行的位移或其他位操作值得做,那么编译器可能会处理它.