s pohyblivou řádovou čárkou na fixní bod

S

smileysam

Guest
Ahoj,
Potřebuji pomoc při coverting plovoucí desetinnou čárkou na fixní bod ..
Jakýkoliv pomoci ocení

 
Ahoj,
V jakém formátu je ur data co Q formatdo u potřebujete??
Proč ne namáhat pevný bod toolbox v MATLABu?
Bylo by opravdu užitečný

na zdraví
Srinivas

 
Obecně řečeno stačí použít přesný bit vzor s pohyblivou řádovou čárkou posune o číslo určen exponent a místo vašeho bodem v pevné místo

Pokusím se vyhrabat nějaký kód z mého archivu

 
C se mnoho číselných konverzí automaticky.Nicméně, já nejsem jasné, co máte na mysli tím "pevným bodem".Máte na mysli celé číslo s implicitní faktor navýšení?Pokud se vám ukázat nám například čísla, může někdo pravděpodobně vám příklad C kód.

 
smileysam,
Navštivte následující stránku:
steve.hollasch.net / cgindex / kódování / ieeefloat.html
Poskytuje přehled o IEEE 754 standard s pohyblivou řádovou čárkou, což je nejvíce běžně používaný formát dnes.
S pozdravem,
Král

 
smileysam napsal:

Potřebuji pomoc při coverting plovoucí desetinnou čárkou na fixní bod
 
Viz strana-805 Digitální zpracování signálu "APRACTICAL přístup" Emmanuel C. IFEACHOR.To pomůže, jsem si jist.

 
Není třeba dělat takové složité věci.Jen typecase pomocí (int)

float f;
int i;

f = 10,5;

i = (int) f;

konvertuje plovák, který je uložen pomocí pohyblivé řádové čárce zápisu o C do pevného bodu číslo.

Nejsem si jist, jestli chcete udělat, nebo program, který přijímá desetinné číslo jako vstup a zobrazí její zastoupení v pevném bodu.

 
ahoj .. díky za ur Nápověda
Pokud vím,
Nejprve převést pohyblivou řádovou čárkou num do pevných bod po rightshifting podle num frakce bitů & OPP věc je udělat na konci roku převést pevnou v pohyblivé řádové čárce ..
1) Nyní je prob multiplaction ...Předpokládejme, že 1,31 * 1,31 2,62 dám formát. Jsme právo posun o 31 .. ale jeden znaménkový bit je zbytečný, takže jsme odjeli posun o jednu ...
in'c 'Jak zvládnout 64 bitové num ...
2) Kromě 2 1.31 numjs odpověď by měla být 2,30 namísto 1,31 .. Jak zvládnout, že?coz -1 (-1), nemůže být zastoupeny ve formátu 1,31 ..

 
Nemyslím si, že je třeba se starat o plovoucí konverze podrobnosti bod, protože C to pro vás a vaše kompilátor bude pravděpodobně optimalizovat to velmi dobře.Stačí vynásobit váš float vhodným škálování faktor, a hoď ji do int.Samozřejmě, s pohyblivou řádovou čárkou data musí být vaše mít stejný formát, který je použitý vaším překladač C.

 
Tady jsem pomocí Kód uvedený v předchozí post.Přidání

Součet dvou pevných bodových hodnot má konzistentní radix vyrovnání, takže součet nepotřebuje Radix úpravy:

Kód:

FIXEDPOINT, částka;

float fsum;

= FloatToFixed (1,31); / / a = 335

součet = , / / součet = 670

fsum = FloatToFixed (součet); / / fsum = 2,61 (téměř 2,62!)
 
smileysam, můžete nám říci, jaký hardware používáte a proč se snažíte udělat konverzi ručně?Možná tady někdo může navrhnout jiný snadnější přístup.

U některých procesorů, s plovoucí řádovou čárkou je stejně rychlý nebo rychlejší než celočíselná aritmetika, a konverze může způsobit zpomalení.

Pokud používáte společné IEEE 754 s pohyblivou řádovou čárkou formátu, zkuste hledat kopii IEEE Std 754 do 1985.Možná zjistíte, že je užitečné.

 

Welcome to EDABoard.com

Sponsor

Back
Top