0

我有一个程序可以将一些数据保存到 NFC 标签。NFC 标签只有一些字节用于内存。而且因为我需要将日期和时间以分钟(十进制)为单位保存到标签中,所以我需要以最节省内存的方式保存它。例如十进制数 23592786 需要 36 位,但如果将十进制数转换为 base36 值,它只需要 25 位内存。

4

2 回答 2

0

数字 23592786 需要 25 位,因为这个数字的二进制表示是 25 位长度。如果日期范围有限,您可以节省一些位。一年包含大约 526000 分钟,因此从 2000 年 1 月 1 日 0:00(任意开始日期)开始的分钟间隔将占用 24 位(3 个字节)并表示到 2031 年的日期。

于 2014-11-10T05:59:02.490 回答
0

最简单的可能是使用Unix 时间,它给出自 1970 年 1 月 1 日以来的秒数,这通常需要 32 位。正如 MBo 所说,您可以通过计算分钟数或选择更近的开始日期来将位数减少 6。但是,使用行业标准也有优势。根据您的应用程序,您可能能够将其减少到 2 个字节,这可能代表大约 45 天。

于 2014-11-10T06:30:26.733 回答