[математика] Переход через 0 в бытовых приборах учета

В бытовых приборах учета количество значащих цифр или разрядов определяется регистром. В микроеэлектронике регистром называют цифровой узел, предназначенный для за­писи и хранения числа.

Нужно разделять понятия показания и потребления или расхода. Показание — значение прибора на текущий момент. Потребление — разница между текущим и прошлым показанием. В информационной системе нужно хранить оба значения.

Переход через 0 — это когда все разряды регистра достигают максимального значения.

  • Предыдущее показание: 994
  • Текущее показание: 1
  • Количество знаков слева (разрядов): 3
  • Расход = 1 + (10^3) — 994 = 7

В коде это будет выглядеть так

if (current<prev)
current = current + 10^NumberOfDigitsLeft()
consumption = current - prev

Самое прекрасное переходов через 0 может быть неограниченное количество раз. Никакой дополнительной обработки не требуется.