在嵌入式系统中,我仅限于使用长度仅为1个字节(0-255,然后回滚到0)的数组索引。该数组不断获得额外的条目,但数组的总长度是固定的,并且小于255(比如说5)。旧值将被覆盖或“弹出”(FIFO堆栈)。正确的排序顺序和1字节索引翻转
通常,最近的第一个(或最后一个)的排序顺序只是数组索引(7,8,9,10,11或17,18,19,20,21或124,125,126,127,128等)的数字排序)。
除了当索引达到255时,它会翻转。现在,值看起来像
253,254,255,0,1或254,255,0,1,2
在这种情况下,简单的数字顺序(0,1,253,254,255 )不是最近的第一次(或最后一次)排序。
什么是在这种情况下找到正确排序顺序的优雅方式?
从Honza的回应中,一旦检测到翻转,我将所有数字视为1字节2的补码。现在254变成-2,255变成-1,而1保持1,2,保持2.索引顺序是最近顺序! – PVS