Умножение с фиксированной точкой
|
|
Deswing | Дата: Суббота, 28 Сентября 2013, 23:04 | Сообщение # 1 |
заслуженный участник
Сейчас нет на сайте
| как???
|
|
| |
Xakep | Дата: Воскресенье, 29 Сентября 2013, 00:51 | Сообщение # 2 |
めちゃくちゃちゃ
Сейчас нет на сайте
| что-то не совсем понятно, если нужно при умножении 2х чисел с плавающей запятой получить число вида: 1.000000e+01 то просто вывести уже такое число: sprintf(buff, "%e", num);
|
|
| |
Deswing | Дата: Воскресенье, 29 Сентября 2013, 10:16 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| Xakep, я имел ввиду как в столбик умножить числа с фикс. точкой. 1111110011,11*00111101,01, например
|
|
| |
LunarPixel | Дата: Воскресенье, 29 Сентября 2013, 10:31 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| ..........101.01 х ..........110.11 ------------------- ...........10101 + .........10101 + .......00000 + .....10101 + ...10101 ------------------- 100011.0111
Все по принципу обычного умножения в столбик. Если умножаем первый множитель на 0, то получаем все нули, если умножаем на 1, то переписываем первый множитель. Потом складываем. Считаем количество знаков после запятой у первого и второго множителя, складываем, отсчитываем такое количество знаков справа от результата и ставим точку. В данном случае у первого и второго множителя после запятой по 2 знака, в сумме 4, у результата отсчитываем 4 знака с конца.
|
|
| |