Вопрос

Я пытаюсь выполнить арифметику, используя только 16-битные подписанные слова. Мне нужно иметь возможность выполнять добавление, умножение и т. Д.

В качестве примера мне нужно вычесть два значения данных, ниже приведен пример: 7269.554688-46,8 или 4385.6616210938 + 32.2

Однако эти значения должны быть преобразованы в 16-битные слова, а затем можно выполнить вычитание, умножение или добавление.

Я также мог бы использовать несколько 16-битных слов для хранения одного значения.

Как я бы выполнял такие операции, как сложение, вычитание и умножение, и как я бы соответствующим образом преобразовал все свои входные значения, чтобы десятичные точки всегда выстраивались в соответствие правильно?

Это было полезно?

Решение

Какую платформу вы кодируете? Чтобы выполнить операции, которые вы дали в качестве примера, вам понадобится блок плавающей запятой. Номера с плавающей запятой обычно представлены через 32 бита или 64 бита, редко 16 бит.

Если у вас нет одного, и все, что у вас есть, это простые операции на 16 -битных целых числах, вы можете подражать плавающему подразделению, но это не тривиальная задача.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top