Я работаю с микроконтроллером OKI 431. Он может связываться с ПК с установленным соответствующим программным обеспечением. EEPROM подключен к шине I2C микро, который работает как постоянная память. Программное обеспечение для ПК может читать и записывать в эту EEPROM.
Рассмотрим два числа, B и C, каждое из которых является двухбайтовым целым числом. B известен как программному обеспечению ПК, так и микро и является константой. C будет числом, настолько близким к B, что B-C поместится в 8-разрядное целое число со знаком. После некоторого тестирования соответствующее значение для C будет определено ПК и сохранено в EEPROM микро для последующего использования.
Теперь микро может хранить C двумя способами:
- Микро может хранить целые
two byte
, представляющие C
- Микро может хранить B-C как
one byte
целое число со знаком и может впоследствии получить C из B и B-C
Я думаю, что представление отрицательного числа в виде дополнения к двум теперь общепризнанно для производителей оборудования. Тем не менее Мне лично не нравится, когда отрицательные числа хранятся на носителе, к которому будут обращаться две разные архитектуры, потому что отрицательное число может быть представлено по-разному. Для вашей информации, 431 также использует дополнение до двух.
Должен ли я избавиться от головной боли, что отрицательное число может быть представлено различными способами, и принять решение one byte
, как предложил мой другой член команды? Или я должен придерживаться решения two byte
, потому что мне не нужно иметь дело с отрицательными числами? Какой из них вы бы предпочли и почему?