| Автор |
Съобщение |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
 Как се дели с PIC до първият знак след запетаята
Искам да разделя две числа ( примерно 16 на 8 битово), но да получа резултат с запетя.
Или с други думи по-голяма точност !!!!
|
| Пон Окт 09, 2006 10:28 pm |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Зависи колко знака искаш след запетаята
|
| Пон Окт 09, 2006 11:36 pm |
|
 |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
Ами само един. Примерно десетично 17 000 : 270 да получа 62.9
|
| Пон Окт 09, 2006 11:46 pm |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Простото решение е, умножи делимото по 10
После раздели (целочислено) на делителя.
След BCD преобразуване, в младшия десетичен разряд ще имаш десетите
|
| Пон Окт 09, 2006 11:53 pm |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
Ако ти позволява разредноста умножи делимото по 10 и тогава дели после си вземи резултата последното 4исло ти е след запетаката
|
| Пон Окт 09, 2006 11:54 pm |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Има и сложно решение.
Качи си от страницата на майкрочип пакета с плаваща запетая, и ще имаш произволна точност, с произволни числа.
Но работи отчайващо бавно
И гълта доста ресурс.
Ще ти трябва по-як процесор 
|
| Вто Окт 10, 2006 12:01 am |
|
 |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
Благодаря ! Значи трябва да премина през 24 бит число. Тази точност за момента ме удовлетворява (до 1-ви знак след зап.). А точност до 8 -ми знак например, пак ли по този начин се прави или има други тънкости?
п.с. невидях предният пост
|
| Вто Окт 10, 2006 12:03 am |
|
 |
|
VSU
Ранг: Напреднал
Регистриран на: Нед Авг 14, 2005 1:08 pm Мнения: 433 Местоположение: Казанлък
|
 Чак пък много ресурс и отчайващо бавно еееееее понамали малко де 
|
| Вто Окт 10, 2006 12:59 am |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Ако пишеш на асемблер, и внимаваш - е поносимо, но я се опитай да го направиш на С.
Един прост полином от 4 -5 степен те забива безвъзвратно във времето
|
| Вто Окт 10, 2006 1:02 am |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Донякъде е вярно, но зависи от използвания PIC. При 18-та серия е доста по-добре, а при 24-та серия изглежда много добре. Според мен използваният език за програмиране не е толкова определящ за скоростта на изпъление при умножение и деление, CCS C постига времена, съизмерими с асемблера.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Вто Окт 10, 2006 1:24 am |
|
 |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
Пиша на асм. защото съм го учил един семестър преди 7 год.  и чак сега се сетих да го използвам.  Бая зор ама така е - роден научен няма.
А за С чета тука, че било по-лесно писането (по-бързо) .Трябва да си купя някоя книжка ,  щото само съм го чувал.
|
| Вто Окт 10, 2006 8:03 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Раздели 16 / 8 и ще получиш цялата част. Намери остатъка от делението и го умножи * 10. след това раздели на делителя и ще получиш десетите. По-бързо е, отколкото делене 24 / 8
|
| Вто Окт 10, 2006 9:01 am |
|
 |
|
me40
Ранг: Новодошъл
Регистриран на: Пет Авг 25, 2006 11:31 pm Мнения: 168 Местоположение: Русе
|
Благодаря за идеите - реализирах ги !
|
| Сря Окт 11, 2006 11:29 pm |
|
|