Prosím přeložit toto do Hitech C

M

mana111

Guest
prosím, jsem tento kód napsán v proton picbasic a chci napsat, že v Hitech c
může jakýkoliv subjekt pomoci pleaseeeeeeeeKód:'Vytvoření některé proměnné pro použití s LN a LOGDim LOG_VALUE jako plovák

Dim LOG_POWER jako plovák

Dim LOG_TEMP jako plovák

Dim LOG_X jako plovák

Dim LOG_FACTOR jako plovák

Dim LOG_XSQR jako plovák

Dim LOG_N jako Byte

Dim LOG_TEMP2 jako Byte'Nemůžeme mít ln (1), takže se musíme vrátit nulu, je-li

Pokud LOG_VALUE.Byte0 = 0 Then LOG_VALUE = 0: Návrat'Rozdíl mezi LOG_N.BYTE0 a $ 7E bude

'Výši 2 ^ LOG_N, že chceme násobit krát ln (2)

Pokud LOG_VALUE.Byte0 <= $ 7E Potom

LOG_N = $ 7E - LOG_VALUE.Byte0

LOG_FACTOR = -0,69314718 * LOG_N

Jiný

LOG_N = LOG_VALUE.Byte0 - $ 7E

LOG_FACTOR = 0.69314718 * LOG_N

Endif

LOG_VALUE.Byte0 = $ 7E'Zahájení Taylorova rozvoje

'Ln (1 LOG_X) = LOG_X - (LOG_X ^ 2 / 2) (LOG_X ^ 3 / 3) - ...LOG_VALUE = LOG_VALUE - 1

LOG_X = LOG_VALUE

LOG_XSQR = LOG_VALUE

LOG_N = 2

Opakovat

LOG_XSQR = LOG_XSQR * LOG_X

LOG_VALUE = LOG_VALUE - (LOG_XSQR / LOG_N)

LOG_XSQR = LOG_XSQR * LOG_X

LOG_TEMP2 = (LOG_N 1)

LOG_VALUE = LOG_VALUE (LOG_XSQR / LOG_TEMP2)

LOG_N = LOG_N 2

Až do LOG_N> 12

LOG_VALUE = LOG_VALUE LOG_FACTOR

Návrat
 
Ahoj, měli byste přesně to, co je cílem vašeho programu.
Už jste o tom přemýšlel?

 
Jedná se o log rutinní
Vím, že tam je log funkce v Hitech PICC, ale chci to takhle, protože je v detailu
Můj největší problém je, jak psát tento řádek v C

LOG_VALUE.Byte0 = 0

Než množství

 
Váš C formě vašeho PIC kódu Základní bych toto:
Kód:

float log_value (float LOG_VALUE) (

float LOG_POWER;

float LOG_TEMP;

float LOG_X;

float LOG_FACTOR;

float LOG_XSQR;

char LOG_N;LOG_VALUE -;

LOG_X = LOG_VALUE;

LOG_XSQR = LOG_VALUE;pro (LOG_N = 2; LOG_N <= 12; LOG_N = LOG_N 2) (

LOG_XSQR *= LOG_X;

LOG_VALUE -= LOG_XSQR / LOG_N;

LOG_XSQR *= LOG_X;

LOG_VALUE = LOG_XSQR / (LOG_N 1);

)návrat LOG_VALUE LOG_FACTOR;

)
 
Než hodně, ale co tyto řádky
To jsou nejdůležitější pro mě'Nemůžeme mít ln (1), takže se musíme vrátit nulu, je-li
Pokud LOG_VALUE.Byte0 = 0 Then LOG_VALUE = 0: Návrat

'Rozdíl mezi LOG_N.BYTE0 a $ 7E bude
'Výši 2 ^ LOG_N, že chceme násobit krát ln (2)
Pokud LOG_VALUE.Byte0 <= $ 7E Potom
LOG_N = $ 7E - LOG_VALUE.Byte0
LOG_FACTOR = -0,69314718 * LOG_N
Jiný
LOG_N = LOG_VALUE.Byte0 - $ 7E
LOG_FACTOR = 0.69314718 * LOG_N
Endif
LOG_VALUE.Byte0 = $ 7E

 

Welcome to EDABoard.com

Sponsor

Back
Top