| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Как се дели с PIC до първият знак след запетаята http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=3040 |
Страница 1 от 1 |
| Автор: | me40 [ Пон Окт 09, 2006 10:28 pm ] |
| Заглавие: | Как се дели с PIC до първият знак след запетаята |
Искам да разделя две числа ( примерно 16 на 8 битово), но да получа резултат с запетя. Или с други думи по-голяма точност !!!! |
|
| Автор: | Syrius-B [ Пон Окт 09, 2006 11:36 pm ] |
| Заглавие: | |
Зависи колко знака искаш след запетаята |
|
| Автор: | me40 [ Пон Окт 09, 2006 11:46 pm ] |
| Заглавие: | |
Ами само един. Примерно десетично 17 000 : 270 да получа 62.9 |
|
| Автор: | Syrius-B [ Пон Окт 09, 2006 11:53 pm ] |
| Заглавие: | |
Простото решение е, умножи делимото по 10 После раздели (целочислено) на делителя. След BCD преобразуване, в младшия десетичен разряд ще имаш десетите |
|
| Автор: | VSU [ Пон Окт 09, 2006 11:54 pm ] |
| Заглавие: | |
Ако ти позволява разредноста умножи делимото по 10 и тогава дели после си вземи резултата последното 4исло ти е след запетаката |
|
| Автор: | Syrius-B [ Вто Окт 10, 2006 12:01 am ] |
| Заглавие: | |
Има и сложно решение. Качи си от страницата на майкрочип пакета с плаваща запетая, и ще имаш произволна точност, с произволни числа. Но работи отчайващо бавно И гълта доста ресурс. Ще ти трябва по-як процесор |
|
| Автор: | me40 [ Вто Окт 10, 2006 12:03 am ] |
| Заглавие: | |
Благодаря ! Значи трябва да премина през 24 бит число. Тази точност за момента ме удовлетворява (до 1-ви знак след зап.). А точност до 8 -ми знак например, пак ли по този начин се прави или има други тънкости? п.с. невидях предният пост |
|
| Автор: | VSU [ Вто Окт 10, 2006 12:59 am ] |
| Заглавие: | |
| Автор: | Syrius-B [ Вто Окт 10, 2006 1:02 am ] |
| Заглавие: | |
Ако пишеш на асемблер, и внимаваш - е поносимо, но я се опитай да го направиш на С. Един прост полином от 4 -5 степен те забива безвъзвратно във времето |
|
| Автор: | ¶ [ Вто Окт 10, 2006 1:24 am ] | |||||||||
| Заглавие: | ||||||||||
Донякъде е вярно, но зависи от използвания PIC. При 18-та серия е доста по-добре, а при 24-та серия изглежда много добре. Според мен използваният език за програмиране не е толкова определящ за скоростта на изпъление при умножение и деление, CCS C постига времена, съизмерими с асемблера. |
||||||||||
| Автор: | me40 [ Вто Окт 10, 2006 8:03 am ] |
| Заглавие: | |
Пиша на асм. защото съм го учил един семестър преди 7 год. А за С чета тука, че било по-лесно писането (по-бързо) .Трябва да си купя някоя книжка , |
|
| Автор: | bateAz [ Вто Окт 10, 2006 9:01 am ] |
| Заглавие: | |
Раздели 16 / 8 и ще получиш цялата част. Намери остатъка от делението и го умножи * 10. след това раздели на делителя и ще получиш десетите. По-бързо е, отколкото делене 24 / 8 |
|
| Автор: | me40 [ Сря Окт 11, 2006 11:29 pm ] |
| Заглавие: | |
Благодаря за идеите - реализирах ги ! |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|