Sari la conținut
ELFORUM - Forumul electronistilor

Caut un fisier Excel ce converteste din zecimal in Q15


mircang9

Postări Recomandate

  • Răspunsuri 8
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • mircang9

    4

  • awy1917

    3

  • cirip

    1

Top autori în acest subiect

M-am uitat pe net, dar din pacate am gasit doar conversii catre hex pe 32 de caractere.

Am facut empiric, uitandu-ma la definitia lui Q15 de pe wiki (http://en.wikipedia.org/wiki/Q_(number_format)).

Am iesit ceva, (destul de ciobanesc) , dar care verifica cele 2 exemple pe care le-ati dat.

Ar trebui verificat pe un set de date mai mare ca sa fie sigur.

 

In exemplu meu valoare in excel este stocata in celula B2.

Formula de conversie este :

 

="0x"& DEC2HEX(IF(INT(B2*32768) <0;INT(B2*32768)+65536;INT(B2*32768));4)

 

Conform a ce scrie pe wiki :

- inmultesc valoarea decimala cu 2 la puterea 15 (Q15)

- rotunjesc la intregul apropiat ( INT() )

- daca valoarea este negativa 65536 , (este 2 la puterea 16 l-am pus dupa nas :( )

- rezultatul intreg i-l convertesc la HEX pe 4 caractere

- pun in fata "0x" ca sa fie frumos

 

Sper sa va folosesca nu-i f stiintific facuta , mai trebuie verificata.

Link spre comentariu

Pe acelasi site :

 

http://www.excelforum.com/excel-program ... ation.html postul #13

 

Sunt multe functii de conversie , am incercat functia Sng2Hex dar care intoarce un HEX pe 32 de biti, si la valorile pe care le-ati dat ca exemplu intorc :

 

?Sng2Hex(-0.3387451171875000E-02) -> BB5E0000

?Sng2Hex(+0.3906250000000000E-02) -> 3B800000

 

Care nu prea pusca cu ce aveti nevoie.

Am incercat mai multe functii din aceasta colectie dar nici una nu a dat rezultatele dorite.

Link spre comentariu

Este exact asa cum a spus awy1917

 

Inmulteste cu 32768 inainte de conversie si convertesti numai partea intreaga.

 

Exemplu

+0.3906250000000000E-02*32768=128 zecimal, care este 0x80.

 

eu folosesc

= ".word " & "0x" & RIGHT(DEC2HEX($O$7*L10,4),4)
Ca sa definesc coeficientii filtrului, cu valoarea zecimala in casuta L10 si 32768 in casuta O7.
Link spre comentariu

Meseriasi mai sunteti :aplauze Era cumplit sa import din Matlab fiecare valoareca sa fac acel fisier ftb.s. Lucram si cu programul acela facut in Visual C++ 6.0si cu MATLAB si apoi importare in ftb.s fiecare valoare luata la mana. Acumlucrez doar cu "banalul" EXCEL si valorile calculate le import in ftb.s si aproape gata filtrul. :aplauze Va multumesc foarte mult **** :101 :dans:

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări