zaokrúhľovania frakčnej číslo

M

mformazhar1980

Guest
hi guys
Musím kolesá prvé číslo a potom Oring to s 128 môže niekto pomôcť mne, ako sa kolesá nepatrná časť vďaka

Citácia:

podpísal int;

unsigned int b;

unsigned int c;

if (c <b)

(

= 0,46 * (bc) | 128;

)
 
Hai

to bude vykonané automaticky, ako ste vyhlásil "" ako číslo

Nandhu

 
No, Nandhu, je pravda, že počet desatinných miest zmiznú, ale výsledok nebude správne zaoblené.V najlepšom prípade, sa skráti, v najhoršom to bude 0, v závislosti od implicitnej konverzie preberá prekladač.

Pre vstavané bych prepísať výraz nasledovne:Kód:

= (((Podpísal) (0,46 * 100) * (bc) 50) / 100) | 128
 
Arthur
Potrebujem, aby to pre embedded riešenie, takže ak budem mať tento
Pre vstavané bych prepísať výraz nasledovne:

= (((Podpísal) (0,46 * 100) * (bc) 50) / 100) | 128
ale stále to nie je dáva mi výsledok

V mojom prípade musím po potom môže byť na moju otázku bude jasnejšie pre vás aj potrebné pod podmienkou, že hodnoty v rozmedzí medzi 100

až -100
a ja am using ATmega128 ako cieľový doska
Mám dva limity, ktoré je HIghlite = 652 a LowLim = 155
a strednej referenčnej hodnoty sú Ref_Hi = 475 a Ref_Lo = 372
Funkcia by mala vrátiť po overení hodnoty medzi 1 až 100 a potom
v prípade zápornej hodnoty, ktoré by mal vrátiť -1 až -100.
, Ale v túto chvíľu môžem len dostať som hodnoty na oplátku-Vo hodnoty nie sú podmienené správne (možno) to je dôvod, prečo som nedostávajú týchto
pocínovat u pozrieť na funkcie a navrhla mi, čo budem robiť, aby si správne hodnoty
vďaka

char Validate_Value (uword Value)
(

char Ret_Val = 0;
ubyt Mask = 0;

uword HIghlite = 652;
uword LowLim = 155;uword Ref_Hi = 475;
uword Ref_Lo = 372;ENTER_CRITICAL ();

/ / Škálovanie hodnoty -1 až -100 tak, že sa musí vrátiť zápornú hodnotu (táto časť nie je funkčné!)
if (Value <Ref_Lo)
(
Value = (((char) (0,46 * 100) * (Ref_Lo - Value) 50) / 100) | 128;
Mask = Value;
)
/ / Škálovanie hodnoty 1 až 100 (táto časť funguje ok)

if (hodnota> Ref_Hi)
(
Value = (((0,56 * 100) * (Value-Ref_Hi) 50) / 100) 1;
Mask = Value;
)
)Ret_Val | = maska;

EXIT_CRITICAL ();

návrat Ret_Val;
)

 
Oh, určite ste sa dostať očakávané výsledky ...
Pozrime sa, čo ty tu:Kód:

Value = (((char) (0,46 * 100) * (Ref_Lo - Value) 50) / 100) | 128;
 
díky moc Arthur to work for me.
I really missed tejto súvislosti majú 2s doplní
nádeje dokážem brať ako dobré návrhy v budúcnosti od vás.

 

Welcome to EDABoard.com

Sponsor

Back
Top