- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个嵌入式系统(没有任何操作系统的 MCU),最终用户应该能够定义一年的系统级别(范围:0-100)。例如(时间 x 天矩阵):
| 1st Jan | 2nd Jan | 3rd Jan | .. | 31 Dec |
00:30 | 40 (%) | 40 | 45 | .. | 50 |
01:48 | 48 | 47 | 55 | .. | 33 |
02:26 | 64 | 64 | 60 | .. | 68 |
.. | .. | .. | .. | .. | .. |
22:15 | 79 | 82 | 89 | .. | 100 |
23:37 | 100 | 100 | 97 | .. | 100 |
我想的是将数据存储为:time [in minutes], sysLevel
所以上表应该是这样的:
typedef struct{
uint16_t minute; //scale: 0 - 1440 min
uint8_t level; //scale 0 - 100 (%)
}timeLevel_t; //3 byte
然后将每一天存储为
timeLevel_t firstJan[24] = { .. }; //it stores level changes, the array length doesn't have to be 24
timeLevel_t secJan[17] = { .. };
timeLevel_t thirdJan[20] = { .. };
...
(我将从 CSV 文件中获取数据,现在在这个问题上考虑它可能超出了主题)。
在最坏的情况下,系统希望有一个每小时的任务定义,因此 24 小时的 timeLevel_t(3 字节)定义将是每天 72 字节的数据,那么 365 天的数据将是 26280 字节的数据。
您能否建议一种内存效率更高的算法来存储日历年的信息(该程序每年都会更新它,以便考虑 2 月 29 日)?
此外?制作一个二维数组在一维存储日期信息,在另一维存储 timeLevel_t 会更好吗?
最佳答案
您必须存储额外的信息,例如 #days/month,或者假设每个信息为 31 并浪费几个字节。
这完全取决于您的痛点。您可以打包更多字节以不浪费任何比特,但代价是代码复杂性和计算时间。
如果存储非常宝贵,您可以将所有内容存储在一个巨大的一维数组中,并将额外的位用于其他内容。例如,第 11 位可以表示“下一天”,第 12 位可以表示“下个月”,然后您可以抓取数组并找到一年中的任何一天。而且您还有另外 4 位用于各种恶作剧。
请详细描述问题。
关于c - 如何有效地在年历上存储任务信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29685200/
我想显示 jquery 年历,如图所示。 现在我只显示月历 JSFiddle $(function () { $("#datepicker").datepicker({ cha
我正在尝试让我的手机更新辅助 GPS 信息。我已按照相关说明进行操作 Android: How to reset and download A-GPS data?这似乎告诉 GPS 删除“年历”所以我
我需要使用Delphi创建一个关于GPS年历的应用程序。像这样的事情: 哪里可以下载数据并阅读? (绘制它们)。我的用户必须选择一天和纬度/经度位置,然后我需要绘制接下来 7 天的 GPS 可用性。我
我是一名优秀的程序员,十分优秀!