 |

|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 05 19, 23:23. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mokslai » Float point skaičių teorija
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
 |
Float point skaičių teorija |
Parašytas: 2021 01 11, 23:47 |
|
|
|
Sveiki.
Gal kas paaiškintų dešimtainio kablelinio skaičiaus konvertavimo į dvejetainę sistemą principus? Arba žino gerą nuorodą į literatūrą?
Nagrinėju -99,99...+99,99 skaičių aibę su 0,01 tikslumu. |
|
|
|
|
 |
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 00:40 |
|
|
|
Jei užtenka konkretaus 0,01 tikslumo, tada tai galima apibrėžti kaip fiksuoto kablelio rėžį -99,99..+99,99.
Tam reikia tiek bitų, kad galėtum aprašyti 10000 simbolių + 1 bitas ženklui, arba rėžis [0..19999], kur 10000 bus už 0, 0 - atatinkamai už -99,99, o 19999 - už 99,99....
Pirmu atveju užtenka 15 bitų bazei ir 1 bito ženklui, ir o siurprise - tai 1:1 int16_t analogas, belieka tik n/100 arba n*0,01.
Šiaip antraštė pas tave apie FloatPoint, tai norint gauti garantuotus 0,01, be jokių ten bereikalingų uodegų, tektų naudoti 7bitus laipsniui ir 15bitų mantisei ir 1 bitą ženklui ir dar 1 bitą laipsnio ženklui, o tai jau bus 24bitai ir tai stipriai netaupu, palyginus su FixedPoint16 versija, nors aparatinio 8x8 daugiklio atveju šiek tiek supaprastintų daugybą, bet dalyba vistiek liktų be akseleracijos  |
|
|
|
|
 |
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 08:03 |
|
|
|
Sukonkretink klausimą, nes visiškai neaišku ką nori su tais skaičiais daryti - suprasti kaip atmintyje yra saugomi, kaip float keisti į pvz. int ar disertaciją ta tema rašyti
Jei pirmas atvejis, tai čia: https://www.google.com/search?client=firefox-b-d&q=how+float+are+stored+in+c
Jei antras, tuomet:
Kodas: |
(int16_t)int_value=(int16_t)( (float)float_value * 100.0 )
// turėti omenyje, jog int_value yra 100 kartų didesnė! |
Jei trečias - čia netinkamas forumas, klausimą reikia užduoti kokiame nors santechnikų forume. Ten daugiausiai "profesorių" lankosi  |
|
|
|
|
 |
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 13:57 |
|
|
|
Gerokai ne visuose PIC mikrovaldikliuose yra matematinis coprocesorius darbui su kableliniais skaičiais. Kadangi dažniausiai užduotys blusinės, tai kišu jas į 8 bitų šeimos pic'iukus. Dabar man reikia prie dvejetainio signed 16bit skaičiaus, gaunamo iš sensoriaus, pridėti xx,xx decimal reikšmę. Taigi, reikia suvienodinti dėmenis, antrąjį pakeičiant į dvejetainį. Galiu sukurti savo konvertavimo standartą, bet norėčiau įsisavinti pasaulinį ir plačiai naudojamą. |
|
|
|
|
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 14:53 |
|
|
|
Išduok paslaptį - tu tą xx,xx BCD reikšmę gauni iš binarinės ar jau iškart BCD formate?
Jei iškart BCD, tai kogero sensoriaus reikšmę pradžiai bus greičiau paversti į BCD ir sudėti su dešimtaine korekcija. Be jei rezultatas reikalingas binarinis, tai galima paprakaituoti BCD atverčiant į binarinį. Greičiausia būtu per lenteles. |
|
|
|
|
 |
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 14:59 |
|
|
|
Ieškai problemos "lygioje vietoje"
andriusa rašo: |
Gerokai ne visuose PIC mikrovaldikliuose yra matematinis coprocesorius darbui su kableliniais skaičiais. |
O kam tas koprocesorius??? Žadi balistinei raketai valdymą daryti? Amerikonai į Mėnulį nuskrido su 15 bitų (pataisykit, jei klystu) kompiuteriu, kuriame buvo 2MHz taktinis dažnis ir jis kuo puikiausiai spėjo atlikti astronominius skaičiavimus, kur yra naudojamas double precision float.
andriusa rašo: |
Kadangi dažniausiai užduotys blusinės, tai kišu jas į 8 bitų šeimos pic'iukus. |
Na tai ir toliau taip daryk.
andriusa rašo: |
Dabar man reikia prie dvejetainio signed 16bit skaičiaus, gaunamo iš sensoriaus, pridėti xx,xx decimal reikšmę. Taigi, reikia suvienodinti dėmenis, antrąjį pakeičiant į dvejetainį. Galiu sukurti savo konvertavimo standartą, bet norėčiau įsisavinti pasaulinį ir plačiai naudojamą. |
Jau parodžiau, koks yra "pasaulinis standartas", verčiant float į int. Tik dėl šventos ramybės geriau naudoti long int (int32_t), kad kur nors persipildymas neįvyktų. Ir skaičiavimo rezultatuose nepamiršti apie panaudotą daugiklį. |
|
|
|
|
 |
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 19:45 |
|
|
|
BCD reikšmes gaunu iškart, iš manualo. Rezultatas dažniausiai reikalingas dvejetainis arba konvertuotas į ASCII. Gintarai, peržiūrėsiu nuorodą laisvu laiku, tik primenu, kad programuoju asembleriu. |
|
|
|
|
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 20:55 |
|
|
|
Iš kokio dar manualo? Aš reikšmes pratęs gauti iš registrų/atminties/portų išorinių įrenginių, bet kad iš manualo???
Manuale nebnt tik info gali gaut, ir tai ne visada tikslią.... |
|
|
|
|
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 21:54 |
|
|
|
Ramiakas, atimama/pridedama BCD reikšmė pateikta sensoriaus duomenų lape, kiek ir kokiomis sąlygomis pastumti vertę  |
|
|
|
|
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 22:39 |
|
|
|
Kame trabliemos? Tą xx,xx konstantą tiesiog daugini iš formulės daugiklio/daliklio ir gauta binarinę konstantą pridedi/atimi pagal sąlygas. |
|
|
|
|
 |
Float point skaičių teorija |
Parašytas: 2021 01 12, 23:47 |
|
|
|
Nėra trabliemos, man tik reikia suvienodinti skaičių tipą prieš atliekant matematines operacijas. Neplėtokim temos, kol nesuvirškinta aukščiau pateikta informacija. Ačiū = Algis + Gintaras / 2. |
|
|
|
|
 |
Float point skaičių teorija |
Parašytas: 2021 01 13, 05:59 |
|
|
|
andriusa rašo: |
Ačiū = Algis + Gintaras / 2. |
Čia sąmoningai skliaustų neuždėjai, kad Algiui daugiau Ačiū kliūtų negu man?  |
|
|
|
|
 |
Float point skaičių teorija |
Parašytas: 2021 01 13, 17:33 |
|
|
|
gintaras_bar rašo: |
andriusa rašo: |
Ačiū = Algis + Gintaras / 2. |
Čia sąmoningai skliaustų neuždėjai, kad Algiui daugiau Ačiū kliūtų negu man?  |
Gintaras / 2 = Ačiū - Algis
Gintaras = 2 x (Ačiū - Algis)
Gal taip geriau?  |
|
|
|
|
 |
Float point skaičių teorija |
Parašytas: 2021 01 13, 20:22 |
|
|
|
hencia rašo: |
Gintaras = 2 x (Ačiū - Algis)
Gal taip geriau?  |
Algio nesu "gyvai" matęs, tai nežinau. Bet jei Algis didesnis už Ačiū, tai nekas... dar ir skoloje lieku  |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Football Training Kit
Football Training Equipment,
Football Skills,
Football Training |
|

|
 |