首页 > 解决方案 > 将 null/invalid/space 等效存储为INT_MIN 或 LONG_MIN

问题描述

我有一个数据包数据结构,它聚合来自多个源的数据以进行重传。即使某些来源提供无效或无效数据,我的完整数据包也必须定期发出。重要的是,这些值始终被视为无效,但仍然被传输和存储。在这种情况下,正数、0 和负数都是具有特定含义的有效值。然而,由 2 的补码编码产生的奇怪的额外负值相对无用。

我的数据包的开头将传输 <limit.h> INT_MIN 和 LONG_MIN 来表征传输机器,然后使用这些值中的任何一个作为字段分隔符。分隔符,指示接近的、可预测长度的比特流的字长。有效比特流中任何地方出现前面的 MIN 值表示流中特定偏移处的单个无效/空值。

这似乎不是一个特别新颖的想法,但我不知道以前的实现。希望有人可以指导我搜索一些搜索词、库或示例。喜欢 C/C++ 的 Arduino 是首选。

标签: limitarduino-c++

解决方案


推荐阅读