хотите ли вы потерять информацию?
Если нет, то число должно быть меньше 2^16(без знака) или иметь какой то паттерн, например с 3 по 12 бит всегда нули.
В таком случае, у числа меньшего, чем 2^16 вы просто читаете два младших байта и получаете результат. Если число со знаком, то там сложнее - его модуль должен быть меньше 2^15, а в первый бит старшего байта нужно будет еще и копировать первый бит старшего байта старого числа.
Если есть какой-то паттерн, вы находите закон, по которому вы из двух байт можете восстановить три и реализуете его.
Еще есть случаи, когда вам может быть не нужна высокая точность, тогда можно поделить число на 2^8, то есть 256 и вы получите 2 байтное число, которое с погрешностью +128 -127 будет нести информацию о предыдущем числе.
напишите подробнее, что это за железо и что за адрес? Возможно в серийниках всегда есть постоянная часть или что то с адресом можно придумать.