“…So here the advantage of switching to Gray's code comes into play. Since there is only a 1-bit difference between two adjacent numbers, only 1 bit of the pointer will change when the pointer changes, while for natural binary numbers, there will be a number of simultaneous changes, for example, 0111 plus 1 becomes 1000, so all the bits change, so the probability of sub-stability is greatly reduced compared to natural binary numbers [6]. In addition, because the signal between 0 and 1 picked up by the sub-stable state will eventually become 0 or 1, for the gray code is to complete the expected change or not, for example: 0011->0010, if the final stable to 0, then the expected jump is completed; if stable to 1, then no change will occur, then the pointer will not move, which does not cause much impact, at most, will only lead to the appearance of false empty or false full situation.…”