Очень специфическая проблема здесь ... и нет, это не домашняя работа (оставленная так далеко ... далеко позади). По сути, мне нужно вычислить контрольную сумму для кода, записываемого в EPROM, и я хотел бы написать эту функцию в программе Ada, чтобы попрактиковаться в манипулировании битами на языке.
Раздел файла данных прошивки для EPROM изменен мной, и это изменение требует новой действительной контрольной суммы в конце, чтобы результирующая система приняла измененный код. Эта контрольная сумма начинается с выполнения двоичной суммы по модулю 256 всех данных, которые она покрывает, а затем выполняются другие операции более высокого уровня, чтобы получить контрольную сумму, в которую я не буду вдаваться.
Итак, как мне сделать двоичное добавление для типа мода?
Я предполагал, что если я использую оператор «+» для типа мода, он будет суммирован как целочисленная операция ... результат, который я не хочу. Я действительно озадачен этим. Я не хочу действительно делать упакованный массив и выполнять перенос битов, если мне это не нужно, особенно если это считается «знакомой». Ссылки Я читаю, что вам нужно использовать типы модов, чтобы обеспечить более переносимый код при работе с бинарными операциями. Я хотел бы попробовать это, если это возможно. С помощью этой программы я пытаюсь настроить таргетинг на несколько платформ, поэтому мне нужна мобильность.
Кто-нибудь может подсказать, как я могу выполнить бинарное добавление для типа мода?
Любые начальные места на языке будут очень полезны.