(int)/(int) - dzielenie bez przecinka (procesorowy DIV jednostki ALU) (int)/(float) lub (float)/(int) lub (float)/(float) - dzielenie zmiennoprzecinkowe (jednostka FPU) 1 <- liczba typu (int) 1.0 <- liczba typu (float)
mnozysz to co tam liczysz przez 100 i juz masz 2 miejsca po przecinku. albo (w specyficznych zastosowaniach) masz dwie zmienne - jedna od czesci calkowitej, druga od czesci ulamkowej. podaj konkretny przyklad problemu, to wtedy mozna wymyslic konkretne rozwiazanie go, bo przeciez zaden termometr cyfrowy nie zwraca ci wartosci typu double. na przyklad...
zmieniłem wynik z milisekund na sekundy poprzez elapsedTIme = (millis() - startTime)/1000, jednakże "elapsedTime" nie wyświetla wyniku po przecinku a zaokrągla liczby. Jak sprawić by zmienna elapsedTIme wyświetlała liczby niecałkowite? Wstępna ocena dostępnych informacji Analiza podanych przez użytkownika danych: - Użytkownik zmienił wynik pomiaru...
A tak z ciekawości to pokaż cały kod. W czym kompilujesz ? Przy okazji użyć syntaxu C++ będzie czytelniej. Kolega Sedr sugeruje, że wprowadzasz dane w nieprawidłowy sposób, to częsty błąd. Czy po wprowadzeniu z kropką zamiast przecinka nadal są jakieś problemy ?
napisz w języku C funkcję, która dzieli dwie liczby zmiennoprzecinkowe mające długość do tysiąca cyfr w zapisie dziesiętnym Zadanie to przekracza możliwości języka C i zwykłych typów zmiennych, które nie są w stanie pomieścić tak dużych liczb zmiennoprzecinkowych. Aby rozwiązać ten problem, należy skorzystać z bibliotek matematycznych, takich jak GMP...
tylko w jaki sposób zamierzasz zaimplemetować dzielenie zmiennoprzecinkowe (Nclk>>Nx)? Tu właśnie jest sedno sprawy poruszone. Wie ktoś może jak należy wykonać dzielenie dla dużych liczb?
Witam. Próbuje od jakiegoś czasu pojąć dlaczego dzielenie dwóch liczb zwraca mi zero, jak w kalkulatorze zwraca mi to 0,20~ float test = 2518/12512; sprintf_s(buf, "%f", test); Gdzie wynikiem jest 0.0000 Masz dzielenie stałoprzecinkowe, bo argumenty są całkowite. [syntax=c]float test = 2518.0/12512.0; [/syntax]
Proszę bardzo wyjaśnienie poniższych tematów: 1) Jak zamienić liczbe ułamkową na U2 [również daną w postaci zmiennoprzecinkowej] 2) Jak odczytywać liczbe zmiennoprzecinkową? 2) Jak wykonać działanie mnożenia na liczbaczh zmiennoprzecinkowych [z użyciem i bez użycia rozszeżeń] 3) Jak wykonuje się pierwiestkowanie liczb zmiennoprzecinkowych. 4) Jak wykonać...
A bo bascom to taki kaszaniasty trochę jest jeżeli chodzi o wydajność i dzielenie za pomocą '/' wykonuje jako zmiennoprzecinkowe, czyli obie liczby na zmiennoprzecinkowe zamienia, dzili i wynik zamienia na format docelowej wartośc (i tu chyba jest coś skopane). Natomiast dzielenie za pomocą '\' to dzielenie na liczbach całkowitych, o wiele szybsze.
Dziękuję za propozycję. Sam też się znam trochę na optymalizacji i z chęcią się nią bawię. Zresztą o czymś muszę w pracy magisterskiej napisać :D Co do architektury to są faktycznie z nią problemy. Podobnie jak AVR'y ARM'y nie mają wbudowanego dzielenia. Całe niezbędne dzielenie trzeba robić software'owo. Jest to spore utrudnienie i spowolnienie działania....
Wielkie dzięki za pomoc. Używam zmiennej typu Single ponieważ w dalszej części występuje dzielenie i pojawiają się liczby zmiennoprzecinkowe a z tego co sie orientuje to Word ani Integer takiej możliwości nie mają (chyba, że mają?) :)
No tak... po co się nauczyć lepiej programować, skoro można kupić arma za 3x taką cenę i uwalić go basicem :) Tak się składa, że umiem "dobrze programować" (zapraszam na www.soft4cnc.pl) i dlatego właśnie jestem zachwycony tym Basicem. Bo mimo kolegi sugestii, jakoby język C do programowania mikrokontrolerów różnił się zasadniczo od Basica do tego...
Ta biblioteka co Ty używasz to tylko współpracuje z zewnętrznymi EEPROM'ami? Chcę używać biblioteki, która pozwala zapisywać w łatwy sposób między innymi liczby zmiennoprzecinkowe do pamięci wewnętrznej procesora bez zabawy w dzielenie na części i zapisywania po kawałku w kolejnych komórkach.
Ciezkao stwierdzi sadze ze okolo 100 ale to jest tylko w przypadku A0 i A1 , adc z A2 potrafi wskazywac temp nawet 250 stopni i ja utrzymywac Jeśli rzadkie to problem rozwiążesz, zresztą jeśli to sterowanie i i tak powinieneś tak zrobić, uśredniając wyniki. Uśredniać można na kilka sposobów, wybierz najlepszy dla ciebie (tablica wyników, dodawanie...
X,Y - to liczby dwu bajtowe!! zapisana w pamieci RAM, czyli całkowite. Tak interesuje mnie takie cos uniwersalne że podaje współczynniki a, b i dziala z tym że nie chce się bawić w liczby zmiennoprzecinkowe ktore ten procesor nie obsluguje tylko bede np aby uzystac 0.014 to bede dzielił liczbe X przez 1000 a potem mnozyl przez 14. Ma ktos cos takiego...
Z całą pewnością nie będziemy żadną konkurencją dla Chińczyków bazując na uniwersalnych rozwiązaniach, wiedza programistyczna też będzie wtedy na podobnym poziomie albo nawet niższym. Oczywiście można sobie kpić i nazywać inne podejście "romantyzmem" czy niepotrzebną "oryginalnością", ale wtedy na końcu pozostanie już tylko nauka chińskiego. Do niedawna...
Napisałem, że czytałem i chodzi mi o rozwianie wątpliwości, które w różnych książkach są inaczej opisywane. Ad.2 a czy aby wynik transformaty DCT nie jest liczbą rzeczywistą, a nie zespoloną? Łatwiej jest mi pobrać wartość kosinusa z pamięci i przemnożyć go z liczbą całkowitą. AD. 3 wiem jak się mnoży liczby zmiennoprzecinkowe. Problem w tym, ze o ile...
Przerwanie co 8ms (ze względu na to że stosuje bascom i liczby zmiennoprzecinkowe nie mogę zejść niżej) W przerwaniu: - sczytane wartości napięć i prądów i porównanie ich z wartościami zadanymi -jeśli prąd powyżej 1A niż zadany to wyjście napięciowe zmniejszone o połowę i wystawia zmienną kontrolną1 na 1 -Jeśli różnica 0,5A a 1A to napięcie zmniejszone...
Na samych bramkach, to chyba się nie da, bo operacje zmiennoprzecinkowe wymagają np. przesunięć skalujących (dodawanie i odejmowanie a co za tym idzie mnozenie i dzielenie używające dodawań pośrednich) zależnych od różnicy pomiędzy wykładnikami (teoretycznie można to zrobić z multiplekserami ale to tylko część problemu). Zresztą rozrysowanie takiego...
Rozważam jak na małych architekturach fajnie mnożyć integery przez współczynniki jak 1.3, 1.5 ... oraz 0.9 , 0.7 ... Cel: w wielu zastosowaniach "na styku z człowiekiem' trzeba się dostosować do logarytmicznego naszego postrzegania rzeczywistości. Czyli postrzegane jako równe skoki głośności, tonu (częstotliwości) tak naprawdę muszą być wykładnicze....
OMG... odpadlem [; czlowieku! liczba twoja zajmuje dwa bajty. wiec najpierw zapisz ... pierwszy, a potem... drugi. po co te kombinacje? moze zapisuj to jako ilosc wielokrotnosci jakiejs fajnej liczby pierwszej (np 23) oraz reszta - bedzie jeszcze bardziej bezsensownie. mozesz zapisywac w eepromie 16bitowo? no to w ogole po co te kombinacje? moze pokombinuj...
super ekstra przybliżenia nie uzyskasz nie mając liczb zmiennoprzecinkowych ale mają DINT (32bity) można zrobić dzielenie pierwsze co to otrzymaną ilość spalonego paliwa zakładając że jest to X litrów mnożysz X przez potęgę 10, potęgę trzeba dobrać tak aby po pomnożeniu nie przekroczyła limitu dla DINT ja zrobiłem np 15x1 000 000 następnie dzielimy...
Tło projektu Step1 Niedawno opublikowałem na Githubie oprogramowanie open-source o nazwie "Yunhan Grill Master". Adres repozytorium kodu: https://obrazki.elektroda.pl/3144397700_... . To oprogramowanie do grillowania zostało zaprojektowane z uwzględnieniem układu RK3399, w tym zarówno dużych, jak i małych architektur rdzeni CPU i GPU...
Najpierw poczytaj co to są liczby stałoprzecinkowe i zmiennoprzecinkowe. Takie dzielenie jak tu zostało zaprezentowane jest na liczbach stałoprzecinkowych. W takim przypadku to ty decydujesz gdzie będzie przecinek i czy w ogóle będzie. Po za tym powtórzę się za kol koodpl : po co takie rzeczy rzeźbić w asm?
Cena nie zmienia się ponieważ dzielenie wykonujesz na liczbach całkowitych, a zatem i wynik wyrażenia w nawiasie tez jest liczbą całkowitą! Chcąc być poprawny pownieneś mnożyć przez 0.01 albo dzielić przez liczbę zmiennoprzecinkową czyli 100.0 void Towar::potrac_opust (int rabat) { Towar::cena-=cena*(rabat/100...
Nie wiem w jakim srodowisku piszesz ale np. w Keilu dla 51 tez taki zapis nie przynioslby skutku, gdyz funkcja sprintf jest typu non-reentrant . Musisz zmienic zapis na: unsigned char Line[17]; float result; result=234.0/212.0 sprintf(Line, "%f", result); LCD_Write(Line); Powinno zadzialac. Pozdrawiam BF
Brrr, Basic. ;) Przerzuć się na C lub asemblera. Nowe AVRStudio można zintegrować z WinGCC i działa to bez zarzutów. A w C deklarujesz sobie od razu, czy masz zmienną całkowitą (char, int), czy zmiennoprzecinkową (float) i o dziwo artytmetyka zmiennoprzecinkowa nie zajmuje ogromnych ilości flasha. :)
zawsze mozesz scastowac... jak kolega wyzej napisal ktoras ze zmiennych jest calkowita i sta niepoprawne dzielenie...
Generalnie jeśli zależy Ci na równomiernym rozkładzie, to oczywiście można to osiągnąć, jednak z wykorzystaniem jednostki zmiennoprzecinkowej, co niestety negatywnie wpłynie na wydajność (sam coś takiego robiłem kiedyś ;) ) Po prostu dzielisz cała długość przez ilość elementów i inkrementujesz liczbę zmiennoprzecinkową wykorzystując do indeksowania...
Toshib : Wszystko zależy od typu dzielenia. zmienna "x" jest typu int, a więc całkowitoliczbowa. Tak więc 1/x jest dzieleniem całkowitoliczbowym (dla x=1 równe 1, powyżej równe 0, dla x=-1 równe -1, poniżej równe 0). Zamiana 1 na 1.0 wymusza dzielenie zmiennoprzecinkowe, przez co działanie jest wykonywane poprawnie. ps. Moja zasada dotycząca liczb...
Cyz koś mogłby wyjaśnić pojęcie liczby zmienniprzecinkowej. Jakie są standardy ? Jak wykonać działania : "+" ; "-" ;"*" ; " / " czyli dodawanie, odejmowanie, mnożenie, dzielenie. Dzielenie nieotwarzające. Pozdrawiam.
Zadeklarowałeś int a, b; a wczytujesz do nich wartości zmiennoprzecinkowe. Może warto jednak być mniej upartym i zadeklarować w ten sposób? float a, b; :)
Zmusza. Dzielenie i mnożenie na liczbach zmiennoprzecinkowych nie są tak upierdliwe jak dodawanie i odejmowanie. Ten dodatkowy kilobajt to procedury konwersji, mnożenia i dzielenia na liczbach zmiennoprzecinkowych.
Czy ktos mi pomoze zdobyć jakieś infornacje związane z prostymi operacjami arytmetycznymi zmiennoprzecinkowymi (dodawanie, odejmowanie, mnozenie?. dzielenie?) na MCS-51. Będe wdzięczny za jakis programik (w asemblerze) na ten temat. Dzięki.
I prawidłowo zwraca. (int)((int)25)/(int)16) jest równe jeden. To, że wynik ma być double nie ma żadnego wpływu na argumenty. Co innego gdybyśmy mieli dzielenie int przez float, czyli np. 25/16.0.
Ad te sumy, to jeszcze raz zwracam uwagę na pytanie, na ile potrzebujesz dokładności. Jeśli nie jest ona znacząca, to śmiało można posługiwać się zmiennoprzecinkowym (acz znacznie wydłuży się czas sumowania). Jeśli masz prime[x/BITS] >> (PIECES - (x/BITS)) to jest błędne to przesuniecie. Tam musi być reszta z dzielenia, nie dzielenie. Poza tym to przecież...
Powinieneś dokonać konwersji z liczby zmiennoprzecinkowej do Stringa skoro wykonujesz dzielenie. np. FloatToStr
Tablicę masz typu Integer, a dzieląc przez 2 wykonujesz operację zmiennoprzecinkową. Uzyj dzielenia stałoprzecinkowego (div) lub zaokrąglij wynik (Round).
Dim T1 As Single Dim T2 As Single A co to? "Przesunięcia bitowe" na liczbach zmiennoprzecinkowych? Zamień single na int i powinno śmigać. Procedury obliczeńna liczbach zmiennoprzecinkowych pożerają mnóstwo miejsca. Dzielenie liczb całkowitych w bascomie AVR robi się za pomocą \, a nie /, ot taka ciekawostka. Użycie / powoduje wykonanie tego dzielenia...
W moim przypadku (ten EKG), ponieważ ten TMS miał tylko arytmetykę stałoprzecinkową, stosowana była taka arytmetyka mieszana - FFT było liczone stałoprzecinkowo (dokładnie to zaprzecinkowo - liczby traktowane jako (-1, 1)), natomiast w przypadku wystąpienia przepełnienia (tylko podczas dodawania) wywoływana była prosta funkcja dzielącą każdą liczbę...
No właśnie... Głupie dzielenie czy operacje na liczbach zmiennoprzecinkowych to przecież kolejne funkcje, których adres w kodzie jest zakodowany WPROST... 4\/3!!
Nie wiem co ten program robi, ale na pewno nie to, co ma w komentarzach. Z definicji liczby zaprzyjaźnione to para liczb - a Twój program sprawdza jedną liczbę? Edit: ok, już widzę jak to ma działać - sprawdzasz czy dana liczba ma liczbę zaprzyjaźnioną. Całe to dzielenie liczb zmiennoprzecinkowych... Nie wystarczy: if (a % b == 0) /* jeśli a...
Np. dać zmienną logiczną warunkującą poprawność wyniku, która będzie ustawiana po drugim odczycie. Dzięki, dodałem tę zmienną. Jakbym mógł to uprościć, bo to jest dzielenie liczb zmiennoprzecinkowych i na pewno długo to CPU oblicza czy nic nie ruszać ? [syntax=c]czas = ( float ) nowy_czas / 1000; // z [ms] na [s] predkosc = ( float ) droga / ( float...
Jednak pomysł pisania "lepszych" wersji funkcji z math.h jest bez sensu - jedyne na czym zaoszczędzi taki "recznie" napisany cosinus to dokładność - znaczną większość kodu takich funkcji i tak stanowią operacje typu mnożenie / dzielenie liczb zmiennoprzecinkowych. Uwierz mi, że jest czasem taka potrzeba (; Zaoszczędziłem dużo cykli, dzięki temu na...
Chciałem Ci tylko zobrazować jak to zrobic. Nie musisz dzielić a ni mnożyć tych "10do-1". Te 10do-1 to info dla ciebie ile liczba ma miejsc po przecinku. To jest wszystko prosta matematyka, gdzie pewnych rzeczy sie poprostu nie liczy tylko wpisuję jako stałe. Jak chcesz robić wszystkie działania matematyczne na uP to niestety pozostaje tylko C. Funkcja...
Użyj języka wysokiego poziomu (C lub Bascom), wtedy nie będziesz miał problemów z arytmetyką zmiennoprzecinkową.
Obawiam się, że ATtiny2313 może mieć za mało pamięci do obliczeń na liczbach zmiennoprzecinkowych...
Chyba nie czytałeś ostatnio tego rozdziału z Language Fundamentals. W ten sposób sam sobie robisz kuku... Pomijając to myślę, że jeśli te Twoje zmiennoprzecinkowe masz tylko do dwóch miejsc po przecinku, to dlaczego, po prostu, nie pomnożysz tego x100 a na końcu wyniku nie podzielisz /100? Zapewne wszystko się wykona dużo szybciej niż na tych zmiennoprzecinkowych....
Musisz tylko użyć zmiennych zmiennoprzecinkowych (signle, real, double, extended)
Błędy były gdzieś w procedurze wyświetlania. Wyrzuciłem ją i tak jak radził BlueDraco wyświetlam przecinek między ostatnimi liczbami. A wartość mnożę i dzielę przez 10.
liczby zmiennoprzecinkowe obliczenia zmiennoprzecinkowe atmega zmiennoprzecinkowe
chrysler radio kostka wytop aluminium instalacja elektryczna alternatora
stanley fatmax termostat bimetaliczny
Samsung TV – 4 mignięcia diody, nie włącza się – usterka podświetlenia lub zasilacza Symbol grzania góra-dół w kuchence gazowo-elektrycznej – jak rozpoznać?