[an error occurred while processing this directive]
|
работа с целыми и дробными числами.
за трактовку входных числе при получении результата умножения ответственен бит FRCT в регистре статуса (указывает надо ли сдвигать на 1 влево результат умножения).
программирую на Си.
так это чтоже получается?!.. если я пишу в программе просто в=а*б , то никто не гарантирует правильности представления результата?!?
..и выход один: пользоваться всяческими хитростными интринсиксами наподобие:
int _smpy(int src1, int src2); Multiplies src1 and src2, and shifts the result left by 1. Produces a saturated 16-bit result. (SATD and FRCT bits set)
long _lsmpy(int src1, int src2); Multiplies src1 and src2, and shifts the result left by 1. Produces a saturated 32-bit result. (SATD and FRCT bits set)
.
нигде не смог найти в какое значение устанавливают инициализационные процедуры Си бит FRCT при старте программы :(
E-mail: info@telesys.ru