Oleks vaja teisendada sellest formaadist kümnendnumbriks aga nii, et koma tuleb õige koha peale. Seni kasutatav algoritm lihtsalt jagab 10-ga niipalju kui vaja ja kogu lugu. Koma peab ise panema. On ehk keegi säärast koodijuppi kohanud (soovitavalt asmis) ?
Teade
Collapse
Foorumi reeglid.
Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less
Microchipi ujupunkti teisendamine
Collapse
X
-
Vs: Microchipi ujupunkti teisendamine
Ee...tarkade inimeste nõu oleks ikka veel vaja. Et kui mahti on, jagage oma lahendusi.
Tähh!- Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
- Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!
-
Vs: Microchipi ujupunkti teisendamine
kas Microchipi kodukal mõnd Application Note selle kohta pole ? igatahes üsna sageli võib leida IEEE754 ujukoma tehete lähtekoodi just ASMis, ka C kompilaatori libis peaks leiduma. mis arvutamist puudutab siis ega vist teisiti saagi kui enne sooritada ujukomas skaleeriv arvutus ja siis teisendada fikseeritud täisarvuks. C keeles on ftoi ja ftol: float to integer( 16 bitti) ja float to long ( 32 bitti) funktsioonid.
sellest 10ga jagamisest ei saanud eriti aru - ieee754 ujukoma on igati binaararv, nii astendaja kui mantiss.
Comment
-
Vs: Microchipi ujupunkti teisendamine
Ma ei ole suutnud leida sobivat näidet. Ilmselt ei oska otsida.
Ise kasutasin seni koodi: http://parsek.yf.ttu.ee/~felc/FLOASC.INC (pärit siit)
Arv teisendatakse INTiks ja jagatakse 10-ga muutes iga kord jäägi ASCIIks. Paraku ei pane algoritm koma ja üldse ... veidi lihtsustatud. Bitikaupa teisendamine pole vist ka eriti lihtne sest bittide kaalud on murdarvulised:- Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
- Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!
Comment
-
Vs: Microchipi ujupunkti teisendamine
Esmalt postitatud felch pooltParaku ei pane algoritm koma ja üldse ... veidi lihtsustatud.
Bitikaupa teisendamine pole vist ka eriti lihtne sest bittide kaalud on murdarvulised:
1980. ehitasime lõpuks "aparatuurse koma".
Kas see koma õige koht ei käi nii et
Algul on arv 1,xxxxxxxxxx kui nüüd lükata vasakule (paremale) mantissi jagu bitte,
siis on seal vasakul täisosa ja paremale jääb murdosa.
Neid saab edaspidi eraldi teisendada.
Oli ajakiri "Programme kõigile". Seal oli selliseid algoritme toodud.
Aga on vist suvilasse rännanud
Kui ei ole saladus, siis mis arvutile see minema peab?
Kui PC, siis võiks proovida teha C moodul ja teha disasm.
Või transleerimisel lasta teha ka asm.
Või, laadida PC liikuva koma protsessorisse. Teha käsk ja võtta jupid välja.
Kuskil 14 aastat tagasi ma proovisin viimati midagi sellist teha.
Kõike ei mäleta ka enam täpselt. Hakkad vanaks jääma
Kui oli mingi sobilik mõte, siis anna teada.
Comment
-
Vs: Microchipi ujupunkti teisendamine
täisarvul pole koma, seega ei saa seda ka kuidagi panna. sinu viidatud koodis on näha et kutsutakse välja ujukomaarvutus kus algväärtust korrutatakse 1000-ga ja siis võetakse täisosa ( ftoi analoog), kõik mis koma taha jääb visatakse minema. sama hästi saad selle ka ise kirjutada kui ujukoma formaadi ehitust uurid.
kordan et ma ei saa eriti aru mida saada tahad.
kui tahad ujukoma arvu saada stringiks ( tekstiks) siis C-s saab seda ntx läbi sprintf-i teha. aga seda on lihtsam internetist vaadata, kasvõi :
http://www.cplusplus.com/doc/tutorial/
asmis teha on võimalik aga ... = jalgratta leiutamisega. õpi need paar rida C-s selgeks, elu on puhtam ja muretum selleks kulub ju üks õhtu kõigest.
ujukomateisendused nõuavad "full " lib'i C-s.
PS see millest A.R. räägib nimetatakse CSD (canonical signed digit ) ja oli 1980-90-tel digitaalses signaalitöötluses kõva sõna aga tänaseks peaaegu loobutud sest kõrgkeeled ( C ) ei toeta.viimati muutis kasutaja raivo; 26 m 2009, 11:45.
Comment
-
Vs: Microchipi ujupunkti teisendamine
Jah, see algo töötas nii et konvertis kõigepealt numbri täisarvuks. Sealt need hädad algasidki.
Float on mul askutusel mitmes koodis (PIC-prosel jooksvad). Viimane asi on ühe vetikate kasvatamise "reaktori" kontroller. Sama, mille RS485 siini andurite muresid kurtsin. Loetakse anduritelt mitmeid parameetrid ja skaleeritakse. Tambovid, millega korrutada, on murdarvulised. Seepärast pidin kogu daata float kujule viima.
Lõpuks tahaks juuser numbreid ekraanil näha. Üle neti näed seda tavaline PC brauseris jooksev kood ja tema ilmselt teebki sprintf (vms). Aga teine juuser reaktori juures tahab lugeda arvu kontrolleri ekraanilt. ASCIIs. Seda juhib toosama PIC.
Ilmselt olen sunnitud paar C rida selgeks õppima ja siis disasmi tegema. Kuidagi ju on võimalik floati ASCIIks teisendada.- Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
- Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!
Comment
-
Vs: Microchipi ujupunkti teisendamine
Kirjutan tõesti aga..vist peaks minema 1 näpuga tippimisele üle. Vigu oleks vähem. Vabandan. Õhtuti tekib neid näpukaid miskipärast eriti palju, klahvid tunduvad kole pisikestena ja teineteisele liiga lähedal ja ... jne.- Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
- Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!
Comment
-
Vs: Microchipi ujupunkti teisendamine
Esmalt postitatud felch pooltKirjutan tõesti aga..vist peaks minema 1 näpuga tippimisele üle. Vigu oleks vähem. Vabandan. Õhtuti tekib neid näpukaid miskipärast eriti palju, klahvid tunduvad kole pisikestena ja teineteisele liiga lähedal ja ... jne.
Rääksin siin et üritasin indentifitseerida artikli autorit tema kirjavigade alusel.
300 inimesest oli, umbes, 50 olid kindlalt määratavad.
Ja nüüd nad tahavad siin keelata vigadega kirjutamise!
Õudne.
Comment
-
Vs: Microchipi ujupunkti teisendamine
Esmalt postitatud felch pooltTambovid, millega korrutada, on murdarvulised. Seepärast pidin kogu daata float kujule viima.
NB kui arv on märgiga siis peab kasutama aritmeetilist nihutamist, see säilitab märgi, positiivsete arvude puhul pole vahet kas loogiline või aritmeetiline nihe.
Comment
-
Vs: Microchipi ujupunkti teisendamine
See on muidugi mõte aga ... proovin ja uurin. Samas kuidas paganas see fprint algo siis töötab? Netist otsides jäi ka mulje et universaalset float_to_ascii algoritmi ei olegi. No ei saa olla ! Mida need kompilaatorid siis kasutavad?
Kuskil kohtasin märget et M-chipi lib'ist olla vastav algo välja visatud kuna oli maru pikk ja kohmakas. Leiaks selle nudimata versiooni, mul aega on. 40 MHz taktiga pole prose niiväga uimane ka. Perfieeria on kordades aeglasem.
PS. Minu seni kasutatav tamboviseerimise valem on tulemus=TambovA*lugem+TambovB- Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
- Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!
Comment
-
Vs: Microchipi ujupunkti teisendamine
jah, full stdio.lib kipub sõltuvalt prosest üsna mahukas olema, peale kompileerimist 8+ kB keskmiselt. kasutamiseks pead selgeks tegema mis registrite kaudu andmed edastatakse (s)printf funktsioonile. on veel üks aga, stdio kasutab heap mälu ja kuidas seda asmis selgeks teha, ei kujuta ette. kuigi krt seda teab, võibolla mõni kompilaator ei kasutagi.
Comment
-
Vs: Microchipi ujupunkti teisendamine
Asmi fännina olen alati teiste tehtud lib'e "optimeerinud" visates üle parda kõik, mida ei kasuta. Oleks vaid lähtekood.- Vend Hieronymus tunneb Motorola toodete nimekirja kõige paremini, las tema ütleb.
- Motorola poolt loodud kiipide hulgas ei ole teda üles tähendatud. - Tähendab: ta on Intelist!
Comment
Comment