Отправлено: 14.01.12 18:14. Заголовок: Алексей пишет: Точн..
Алексей пишет:
цитата:
Точно так же как и в десятичной системе... Надо изучить формат представления этих чисел и все будет понятно.
Не могли бы Вы дать ссылки, где было бы подробнее описаны процедуры работы с числами с плавающей точкой. Хочу разобраться на примере (AN526) , перерыл интернет, ничего толкового не нашел, как преобразовать и как выглядит в десятичной системе этот пример:
;******************************************************************* ; Test Program ;******************************************************************* ; Load constant values to (ACCa, EXPa) & (ACCb, EXPb) for testing ; loadAB movlw 1 movwf ACCaHI movlw 0FF ; loads ACCa = 01FF EXP(4) movwf ACCaLO movlw 04 movwf EXPa ; movlw 07F movwf ACCbHI movlw 0FF ; loads ACCb = 7FFF EXP(6) movwf ACCbLO movlw 06 movwf EXPb retlw 0 ; main nop ; call loadAB ; result of adding ACCb(EXPb)+ACCa(EXPa)->ACCb(EXPb) call F_add ; Here Accb = 403F, EXPb = 07 ; call loadAB ; result of subtracting ACCb(EXPb)-ACCa(EXPa)->ACCb(EXPb) call F_sub ; Here Accb = 7F7F, EXPb = 06 ; call loadAB ; result of multiplying ACCb(EXPb) * ACCa(EXPa)->ACCb(EXPb) call F_mpy ; Here ACCb = FF7E, EXPb = 12 ; call loadAB ; result of dividing ACCb(EXPb) / ACCa(EXPa)->ACCb(EXPb) with call F_div ; remainder in ACCc. Here ACCb =4000, EXPb = FA (same as -6) ; ; & the remainder ACCc = 003F ; self goto self
Было бы интересно узнать, пытался ли кто разобрать исходник FLC метра http://www.cqham.ru/lcmeter3.htm и смог бы доходчиво объяснить, каким макаром работать с библиотекой (Float) представленной в этом коде?
Отправлено: 14.01.12 22:21. Заголовок: На сколько помню, я ..
На сколько помню, я спрашивал автора. Автор переделал, упростил библиотеку под свои нужды. Очень просто просмотреть в MPLAB, как она работает. В исходнике она функционально отделена, как "32-х битная библитека с плавающей точкой". Вот могу предложить, несколько моих статей. Как объяснение и мои собственные разборки с плавающей запятой. Может поможет. Давно это было. http://zalil.ru/32497458 И во многом наивно.
Отправлено: 15.01.12 07:13. Заголовок: На здоровье. Рад что..
На здоровье. Рад что пригодилось. Лично я, чем больше разбирался отошел от такой формы. Там и накопление ошибки, и сложные вычисления и преобразования. Проще с фиксированной запятой для большинства случаев с которыми сталкиваюсь.
Отправлено: 15.01.12 13:17. Заголовок: MAZ пишет: Спасибо ..
MAZ пишет:
цитата:
Спасибо за веселые выходные! Сейчас будем вспоминать
MAZ sorry, если че, то мне не так уж и к спеху, спасибо.
Вот этот апноут AN256, никак не могу в нем разбратся, в часности с библиотекой Float, думаю многим будет полезно, если мы этот вопрос сейчас растолкуем.
Отправлено: 15.01.12 20:53. Заголовок: Честно говоря не пон..
Честно говоря не понимаю эту запись. Число приблизительно можно расписать, но тогда не совпадают вычисления. Вы откуда её взяли? Первоисточник. Спрашивал у других, тоже мнение, не понятно. AN256, AN526 Посмотрите вот это. По этим библиотекам Александр Буевский и делал, на сколько помню, свой LCF.
Вот: "Rimsky: Шестнадцатиричное число перед EXP - мантисса. Преобразуете его в десятичный формат. И умножаете на двойку в степени, которая указана в скобках после EXP. Все, получаете десятичный формат." Что мне ответили на КОТе.
Отправлено: 16.01.12 19:34. Заголовок: 2^6 я не додумался. ..
Rimsky пишет:
цитата:
7FFF EXP(6) + 01FF EXP(4) = 403F EXPb = 07
Rimsky пишет:
цитата:
7FFF (EXP =6)+01FF(EXP=4)=403F(EXP=7)
Все таки записи не корректные. По первой записи. можно понять что результат суммы =7 И думаешь, что где то ошибся с переводом. Тем более давно все благополучно забыл.
Все даты в формате GMT
3 час. Хитов сегодня: 2
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет