提升单位频率到周期
Boost.Units frequency to period
我正在尝试使用Boost.Units库将频率(例如,20kHz)转换为其周期的持续时间(50000纳秒)。我不想使用浮点数。
我遇到的麻烦是,简单地取倒数 1/f 会导致零截断,因此即使转换为纳秒,结果也会为 0ns。如果我先转换为兆赫兹,然后取倒数,第一步再次导致零截断。
我发现的一种解决方法是使用 boost::rational 作为数量的value_type。这行得通,但我觉得很丑陋。有没有更好的解决方案?我对单位库很陌生,到目前为止有点不知所措。
我现在的解决方案:
typedef make_scaled_unit<si::time, scale<10, static_rational<-9> > >::type nanosecond;
typedef quantity<si::frequency,rational<unsigned>> freq_quantity;
typedef quantity<nanosecond,rational<unsigned>> time_quantity;
rational<unsigned> val(20);
freq_quantity Fs(val*si::kilo*si::hertz);
cout << Fs << endl;
cout << static_cast<time_quantity>(rational<unsigned>(1)/Fs) << endl;
1.0f/f
以避免截断
相关文章:
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 在指针的帮助下,文本文件中单词的频率
- 函数计算用户按下按钮的频率
- 在条件变量中触发错误信号的频率是多少
- 如何在 c++ 中循环中使用频率变化的声音?
- Pisano 周期生成器在 3 位周期内行为不正确
- 查找给定范围内最长连续 1 的频率
- 字母 字母频率
- 如何在共享库的整个生命周期内存储数据
- 提升图形库:资源受限的最短周期
- WM_PAINT消息频率:C#(.Net Framework 4.7.2 WinForms)与C++
- 我必须找到给定数组中所有数字的周期,就像有很多解决方案,但数组的大小是 10^5
- 如何理解句子的生命周期始于对e的评估
- 它解决了什么问题,对于非真空初始化,生命周期在初始化之前就开始了
- 创建一个函数,返回给定单词在C++中的频率
- 找到包括特定边的最短周期
- 如何期望通过使用Google Test(Mock)以特定频率调用函数
- 跟踪多个文件中一系列字符的频率
- Go/C++gRPC客户端通道和存根生命周期
- 提升单位频率到周期