Цитата(showone @ Jan 19 2007, 16:02)

подскажите пожалуйста
как перемножить два числа 3,25 на 0,75 ?
использую C8051F121 там есть аппаратный перемножитель.
все замечательно умножается если 0,2*0,007 или целое на целое, 1234*9874.
легко и быстро.
а как вот если число содержит и целую и дробную часть ?
т.е. 3,24*7,2 или 0,27*7,15
принимаются любые предложения.
заранее спасибо.
Это называется арифметикой с фиксированной точкой. Например, число 3,25 можно представить в виде 011.01000 (В) (взята разрядность операндов в 8 бит). Точка здесь отделяет целую часть от дробной, поставлена условно и должна держаться "в голове". Например, это же число можно записать и в виде 0011.0100. Первый формат называется 3.5, второй - 4.4. Число 0,75 в формате 4.4 будет выглядеть так: 0000.1100. После перемножения двух этих чисел формата 4.4 получим 00000010.01110000 - число в формате 8.8. Если хотите привести его к формату операндов, нужно сдвинуть результат влево на 4 разряда, и округлить до байта.
Самонадеянность слепа. Сомнения - спутник разума. (с)