Арифметика только с 16-разрядными знаковыми словами - PullRequest
0 голосов
/ 11 января 2012

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

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

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

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

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

1 Ответ

1 голос
/ 11 января 2012

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

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

...