zmiennoprzecinkowych do stałego punktu

S

smileysam

Guest
Witam,
Potrzebuję pomocy w orientacyjnej zmiennoprzecinkowych do stałego punktu ..
Każda pomoc będzie doceniona

 
Witam,
ur co formatu danych, co formatdo Q potrzeby u??
Dlaczego nie spróbować stałym punktem zestawu narzędzi w MATLAB-ie?
Byłoby to bardzo pomocne

okrzyki
Srinivas

 
Ogólnie rzecz biorąc po prostu użyć dokładnie tych samych wzorca bitów zmiennoprzecinkowych przesunięty o liczbę ustaloną przez wykładnik i miejsce dla punktu w określonym momencie

Postaram się odkopać część kodu z mojego archiwum

 
C ma wiele konwersji numerycznej automatycznie.Jednak nie jestem jasne, co masz na myśli "stały punkt".Masz na myśli liczbę całkowitą z domyślnych współczynnik skalowania?Jeśli wykażesz się wobec nas numery przykład ktoś może prawdopodobnie daje przykład kodu w C.

 
smileysam,
Odwiedź stronie:
steve.hollasch.net / cgindex / kodowanie / ieeefloat.html
Daje na przegląd standard IEEE 754 pkt pływający, który jest najczęściej używany format dzisiaj.
Pozdrawiam,
Kral

 
smileysam napisał:

Potrzebuję pomocy w orientacyjnej zmiennoprzecinkowych do stałego punktu
 
patrz strona-805 Digital Signal Processing "APRACTICAL podejście" Emmanuel C. IFEACHOR.To pomoże, jestem pewien.

 
Nie trzeba robić takie skomplikowane rzeczy.Tylko typecase pomocą (int)

float f;
int i;

f = 10,5;

i = (int) f;

konwertuje pływak, który jest przechowywany przy użyciu pływających notacji przez punkt C na ustaloną liczbę pkt.

Nie jestem pewien, czy chcesz to zrobić, lub program, który przyjmuje liczbę zmiennoprzecinkową jako wprowadzania i wyświetlania swojego przedstawiciela w ustalonym punkcie.

 
Witam .. dzięki za pomoc ur
O ile wiem,
Najpierw przekonwertować punkt num pływających do stałego punktu przez rightshifting przez num bitów frakcji i rzecz opp odbywa się na koniec do konwersji ustalone w zmiennoprzecinkowych ..
1) jest teraz prob ... multiplactionZałóżmy, że 1,31 * 1,31 daje 2,62 formacie. Mamy prawo przesunięcia do 31 .. ale jeden bit znaku jest marnowana więc przesunięcie w lewo o jeden ...
in'c "Jak obsługiwać 64 bit num ...
2) Ponadto 2 1.31 numjs odpowiedź powinna być 2,30 a nie 1,31 .. Jak z tym poradzić?coz -1 (-1) nie może być reprezentowana w sekcji 1.31 format ..

 
Nie sądzę, trzeba się martwić o zmiennym punkt wymiany informacji, bo C to dla Ciebie, a kompilator prawdopodobnie optymalizacji to bardzo dobrze.Po prostu pomnożyć swoje float przez odpowiedni współczynnik skalowania, i wrzucił je do int.Oczywiście, swój punkt pływających danych musi mieć taki sam format, który jest wykorzystywany przez kompilator C.

 
Jestem tutaj za pomocą kodu przedstawione we wcześniejszej post.Dodanie

Sumy dwóch stałe wartości punktu jest zgodne dostosowanie podstawa, więc suma nie wymaga podstawa regulacji:

Kod:

FIXEDPOINT, suma;

float fsum;

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

Suma = / / suma = 670

fsum = FloatToFixed (suma) / / fsum = 2,61 (prawie 2,62!)
 
smileysam, możesz nam powiedzieć, jaki sprzęt jest używany i dlaczego staramy się robić konwersji ręcznie?Może ktoś tutaj może sugerować różne łatwiejsze podejście.

W przypadku niektórych procesorów, pływające arytmetyczna punkt jest równie szybko lub szybciej niż arytmetyczna liczby całkowitej, i konwersji może powodować spowolnienie.

Jeśli używasz wspólnego pływających formacie IEEE 754 pkt, spróbuj poszukać kopię IEEE Std 754-1985.może okazać się bardzo pomocne.

 

Welcome to EDABoard.com

Sponsor

Back
Top