Funkcje trygonometryczne realizuje się często przez rozwinięcie ich w szereg Taylora. Ponadto powstał też algorytm CORDIC, który o ile dobrze pamiętam wymaga tylko operacji przesunięcia i dodawania, przez co świetnie nadaje się do implementacji w małych uC, czy FPGA (google). Do mnożenia stosuje się algorytm Bootha (niektóre rozwiązania sprzętowe działają...
Dodawanie szostek tez zadziala, ale czym rozni się ono od dzielenia przez 10 ? Czy chodzi moze o wyzszosc symbolu " + " nad symbolem " * " ?? Mysle ze chodzi tylko o taką róznice, ze o ile sie orientuje to wykonanie dodawania zajmuje znacznie mniej czasu procesora niz mnozenie czy dzielenie.
Nie tak dawno pisalem w watku na temat dzielenia 16bitow przez 16 bitow. Poszukaj. Jest tam algorytm, i konkretna procedura. Nie powinienes miec problemow z jej przerobieniem.
1. Klawiatura matrycowa 4x4, są takie do dostania, naklejalne na obudowę. 2. Wyświetlacz LCD 1x20. 3. No i oczywiście procesorek... ;) Algorytm dzielimy na podprocedury : - inicjalizacja główna - inicjalizacja klawiatury - inicjalizacja LCD - obsługa klawiatury - obsługa LCD - program spinający całość, czyli pętla główna, ewentualnie jeszcze do tego...
Swego czasu w EP był kurs asemblera i tam pośród różnych innych procedur w asembelerze były procedury dzielenia wielobajtowego. Nie ma wprawdzie 16 przez 16 ale są inne DZIE3216.ASM DZIEL328.ASM http://www.ep.com.pl/pobierz.php?id=65 W końcu liczba 2 bajtowa to tez liczba 4bajtowa z dwoma bajtami równymi "0x00" Pozdrawiam ------- tutaj strona z pozostaBymi...
Może nie najładniej to rozrysowałem - [url=http://forum.dzyszla.aplus.pl/topic... dzielenia liczb wielobajtowych z wykorzystaniem odejmowania
Standardowy algorytm dzielenia binarnego - jeden z dwóch do wyboru - restytucyjny albo nierestytucyjny. Opis znajdziesz w każdej książce z okolic arytmetyki komputerów.
W takiej notacji, że każda cyfra jest w osobnej komórce tablicy, problemem jest obsługa wartości ujemnych. Najłatwiej jest operować na kodzie uzupełnienia do dwóch. Wtedy wyliczanie przeniesienia nie jest skomplikowane. Tutaj możesz zastosować algorytm pisemnego odejmowania, przy czym najniższe cyfry trzymać pod niskimi indeksami, aby można było działania...
Witam muszę napisać algorytm na dzielenie 2 liczb z zabezpieczeniem dzielenia przez 0 . Algorytm ma być napisany do delphi 3 lub 7 czy może ktoś mi pomóc bo jestem zielony z góry dzięki za odpowiedz :).
No w DSP (takich srogich jak np LTE i nie tylko) arytmetyka fixed point jest podstawą i float jest tylko ostatecznością. Ja tam i FFT i atan2 liczę na fixed point i jeszcze dzielenie algorytmem babilońskim co by przypadkiem nie użyć działania dzielenia, co robi zamieszanie w kodzie: https://github.com/marcinszajner/Driver/...
No to się pochwal co było. Dobry obyczaj wymaga dzielić się informacjami o popełniabnych błędach - wtedy wszyscy się uczą. Ktoś inny za pół roku znowu zje zęby na podobnej sprawie.
Witam! Załaduj do jednego z rejestrów wartość, którą chcesz podzielić, drugi rejestr wyzeruj i odejmuj od pierwszego 10 zwiększając drugi o 1, dopóki pierwszy nie jest mniejszy niż 10. r31 - liczba do podzielenia, później reszta z dzielenia r30 - wynik dzielenia Jeśli nie potrzebujesz reszty, usuń ostatni wiersz. clr r30 dz_petla: inc r30 subi r31,...
A w czym te drugie algorytmy są lepsze, skoro też mają duży rozrzut czasów wykonania oraz ten czas wykonania może być znacznie dłuższy do tych pierwszych algorytmów? Nie do końca o to chodzi. Przyjmijmy, algorytm A bardzo szybko podzieli 69/3, za to bardzo długo będzie dzielił 6969/333. Algorytm B, zoptymalizowany pod determinizm, będzie dłużej dzielić...
Idea jest bardzo prosta - to zwykłe skalowanie liczby: maxuint32 + 1 to 0x100000000 dzielone przez 10 to 0x1999999A albo 0x19999999 zalezy jak zaokrąglić Następnie dzielę przez 0x100000000 ( a to akurat >> 32) Czyli (X * (Y/10)) / Y = X / 10 Y = 0x100000000 Algorytm ma sens oczywiście dla platform, które mają mnozenie sprzętowe (nawet małych liczb),...
Kriti:zależy co robisz... jak np jakąś obróbke grafiki (obsługa kamerki albo wyświetlacza) czy dużej ilości danych to jak najbardziej się opłaca. Kilka linijek assemblera (a ARM ma strasznie prosty assembler) i możesz wyciągnąć 100% większa prędkość działania funkcji. Poza tym w niektórych miejscach (np uproszczone algorytmy dzielenia) wstawki w assemblerze...
Czy możesz rozrysować to blokowo? Nie bardzo wiem, po co to dzielenie MOD
Problem w tym że nie mam zielonego pojecia o Bascomie i BASICU :/ Program pisze w ASM'ie. Jak na razie zrobiłem to na skróty i działa ale to nie to....(po prostu zamiast dzielić przez 120 dziele przez 128)
Musze napisać program w 6800 w którym będę dzielić liczbę BCD przez 2. Czy zna ktoś algorytm tej oracji??
Chyba najprostrzy możliwy algorytm to dzielenie przez podstawe systemu liczbowego, a reszta z dzielenia to będą kolejne cyfry w nowym systemie liczbowym.
matematycznie to zalezy jaki zastosowano algorytm albo jakis prosty bez zadnych wodotryskow wtedy jest to tylko kewstja odpowiedniej ilosci danych a jeszli ktos sie do tego przylozyl i nie daj boze slyszal cos kiedys o kryptografi to raczej nalezalo by sobie to darowac bo zupelnie prosty algorytm moze sie okazac "trudnym" starczy jakies dzielenie modulo...
Tu masz moje biblioteki w której jest mnożenie i dzielenie o deklarowanej ilości bajtów (międzyinnymi).
Czy komputer przekaźnikowy może wykonywać dzielenie i pierwiastkowanie? Cześć! Oczywiście, że może. Komputer przekaźnikowy, choć jest to starsza technologia oparta na przekaźnikach elektromechanicznych, może wykonywać różne operacje matematyczne, w tym także dzielenie i pierwiastkowanie. W tym przypadku algorytmy dzielenia i pierwiastkowania są zaimplementowane...
Możesz pomnożyć resztę to przez 1000 a następnie znowu podzielić to przez dzielnik... Albo wykorzystać algorytm, z "dzielenia pisemnego" :D Np. 1.Pomnożyć resztę przez 10 2.Podzielić przez 16 3.Zapisać część całkowitą 4.Jeśli reszta>0 to skocz pkt. 1 5.Koniec PS Trzeba również pamiętać, o ustaleniu rozdzielczości(ilości cyfr) naszego ułamka dziesiętnego.
Znasz taką strukturę jak "tablica" ? Albo taki algorytm jak dzielenie binarne? Wszystko da się zakodować. BTW swicth case na 200 pozycji mógłby być ciekawie zoptymalizowany, potwierdzicie?
(at)ElektrodaBot Czy fo variance = variance / (n - 1) jest prawidłowe? Dlaczego dzielimy przez n-1 a nie przez n?
Poza tym pobieżnie przejżałem DS ATTiny i nie widzę instrukcji analogicznej do DIV w 8051?? Jak w nim dzielić liczby?? A czy znalazłeś MUL? ;) Do takich obliczeń niestety trzeba pisać własne funkcje. Można mnożyć i dzielić poprzez wielokrotne dodawanie lub odejmowanie danej liczby, ale to jest oczywiście dosyć mało optymalna metoda. Oczywiście mnożenie...
1. Tablica statyczna - po prostu array 2. Parzyste elementy - reszta z dzielenia (dzielenie modulo = mod ) = 0 3. Algorytm bąbelkowy - znajdziesz opis np w tej paczce: http://www.dzyszla.aplus.pl/download-32.... Nie przejmuj się, że to C. Po prostu przeczytaj punkt 2.3 z pliku sorts1.doc 4. pętla i dodawanie do zmiennej 5. kolejna tablica - P pkt....
Mnożenie to wielokrotność dodawania - 5*3 = 3+3+3+3+3 wynik = 0 mnożna = 5 mnożnik = 3 mnożnik > 0 ? tak -> wynik+= mnożna // 5 mnożnik-- // 2 mnożnik > 0 ? tak -> wynik+= mnożna // 10 mnożnik-- // 1 mnożnik > 0 ? tak -> wynik+= mnożna // 15 mnożnik-- // 1 mnożnik > 0 ? nie -> koniec algorytmu. Dzielenie to odejmowanie z testem, czy kolejna różnica...
Sensu to nie ma żadnego. Dla każdego 8-bitowca jest to zabójstwo, bo każda operacja na danych czy to BCD, czy binarnych 64-bitowych zajmie wieki (zwłaszcza mnożenie i dzielenie). Są algorytmy resztowe umożliwiające unikanie dzielenia przy konwersji bin->BCD i całkiem zgrabnie to wychodzi (nawet na głupiutkim 51), ale wciąż nie widzę w tym sensu, jeśli...
Poprawianie Atmela nie ma nic wspólnego z algorytmem dzielenia.
hint: dzielenie przez 10 i modulo 10.
ARM jest ma architekturę riskową więc dzielenie nie zawsze jest. Rdzeń Cortex M3 np. STM32 firmy ST ma dzielenie sprzętowe liczb całkowitych, zwróć uwagę na algorytm na pewno dzielenie jest i jeśli jest sprzętowe jest dużo szybciej. Jeśli to Ci nie weystarczy najlepiej będzie wziąć DSP'ka ze sprzętowym blokiem do operacji zmienno przecinkowcyh. Dzielenie,...
tjanusz :arrow: znam troszke c# na tyle ile mi jest to potrzebne, ale w c# przecież można także wstawiać kod asemblera tworząc np. swoje własne algorytmy dzałań matematycznych. Pszepraszam, ale nie wiem co to znaczy " żródełko" gcc lub FreePascal i jak mogę do tego dotrzeć :arrow: elektryk dokładnie np. teraz pracuję nad potęgowaniem modulo metodą iterowanego...
Witam, Dawno nie korzystałem z BASCOM'a, więc nie pamiętam już składni, ale algorytm jest następujący: 1) zapisujesz sobie w zmiennej temperaturę w stopniach 2) wykonujesz dzielenie całkowite temperatury przez 10 -> otrzymujesz cyfrę dziesiątki, zapisz do zmiennej x 3) wykonujesz dzielenie modulo temperatury (reszta z dzielenia) przez 10 -> otrzymujesz...
ponieważ 51 nie ma sprzętowego dzielenia liczb 16 bitowych więc kolega musi poszukać sobie algorytmu do dzielenia takowych liczb i ten algorytm sobie zaimplementować prosta sprawa jeśli nie uda się znaleźć to ja udostępnie ale uprzedzam jest po angielsku jak zresztą cała współczesna elektronikia (no poza drobnymi wyjątkami) :D
Panowie, dlaczego dyskutujemy o dzieleniu? Przecież w algorytmach filtrów itp. najczęściej wykorzystuje się operację mnożenia i dodawania.
Ja pisałem nie w sensie kodu tylko logiki. Po co urządzenie ma dzielić przez zero? Jeżeli w algorytmie dopuszczamy do takiej sytuacji (bez reakcji na to krytyczne zdarzenie) to algorytm jest do kosza. To znaczy wykrycie dzielenia przez zero powinno zatrzymać jakiekolwiek dalsze przetwarzanie dalszych obliczeń w programie (takie jest moje zdanie). Takie...
Dzielenie jest łatwe w uproszczeniu, jeśli np. obie liczby mają jednakową ilość zer z prawej strony, to o tyle mozna je przesunąć w prawo. Ogólnie algorytm dzielenia jak liczb dziesiętnych w podstawówce. Mnożenie jest już w µkontrolerze i to nawet w postaci cząstkowej fmul .
Musisz wynik podzielić przez 1000. Algorytmy dzielenia można znaleźć na stronie www.atmel.com w notach aplikacyjnych.
Płytkę już polutowałem, silnik zamontowałem tymczasowo w podstawce zrobionej z pudełka na płyty cd a góra służy jako ochrona. Wszystko ładnie się już kręci :). Napisałem też szkielet programu w Bascomie (świetny trening bo dopiero zaczynam) i właściwie działa ale algorytm jest trochę do bani. Bo timer1 (16bit) zlicza cykle zegarowe od przerwania INT0...
Algorytm wydaje się ok.
System liczbowy jak każdy inny - zamiast marnować bajt pamięci na jedną cyfrę mógłbyś w nim przechowywać znacznie więcej. Ale to już akademicka zabawa. Co do dzielenia - możesz zrobić tak, jak dzielenie pod kreską ;) Gdzieś miałem algorytm rozrysowany, ale zapodziałem :( Jak znasz assemblera, to moze wyczaisz - jest to w 3J wykonane: http://www.dzyszla.aplus.pl/programy_i_t...
Nie ma żadnej gotowej funkcji. Należy zaimplementować algorytm konwersji liczby (czyli dzielenie w pętli i wypisywanie znak po znaku wartości wynikającej z reszty dzielenia przez podstawę systemu.
Niestety nie ma prostego sposobu. Można co prawda użyć takiej konwencji, że będzie możliwe dzielenie za pomocą "/". Jednak takie dzielenie może "pochłonąć" wszystkie zasoby układu programowalnego. Poza tym taki algorytm będzie bardzo czasochłonny i co gorsza czas jego wykonania będzie zależał od argumentów. Proponuję zastosować jeden ze sposobów dzielenia...
Tak, zgadza sie. Troche sie ostatnio spieszylem i zapomnialem ta linijke dopisac. Zorientowalem sie i mialem to zrobic w pozniejszym czasie. Widze ze czujnie sledzisz. Dzieki. Teraz to samo zrobie dla liczby 16 bitowej. Mam algorytm na dzielenie wielobajtowe, ale musze poszukac czegos takiego: 16bitow podzielone przez 4 bity. Ewentualnie zmodyfikuje...
Proponuję do zapisu wykorzystać kod BCD ;) Algorytm dzielenia oczywiście trzeba także napisać samemu (http://forum.dzyszla.aplus.pl/topic127-...
Witam, Nie twierdzę że mój sposób sprawdzi się w Bascomie, dużo lepiej sprawdzi się asemblerze. Napisałem w Bascomie tak dla przykładu, myślę że tak jest przejrzyście, a chodzi po prostu o zasadę - sposób. AVR - serii Atmega to 8bitowce, więc tutaj w grę wchodziłoby tylko 8bit/8bit. Natomiast co ciekawe, AVR32 też nie ma dzielenia sprzętowego. Całkiem...
Witam, Mam za zadanie napisać prosty kalkulator jako część zaliczenia na studiach, ale nie potrafię zrobić działania dzielenia. Proszę o pomoc. Ogólny zarys algorytmu wygląda tak: 1. Wciskamy przycisk 2. Wybieramy działanie 3. Podajemy liczby 4. Wynik
Algorytmy mnożenia i dzielenia, a także innych działań są dokładnie opisane m.in. w książce Józefa Kalisza Podstawy elektroniki cyfrowej . Sporo algorytmów można znaleźć na stronach producentów mikrokontrolerów w działach aplikacje. Jeśli znasz choć trochę asembler '51, to na pewno dasz radę. Pozdrawiam.
A czego się spodziewasz po dzieleniu liczb całkowitych? Algorytm działający na floatach jest dalece bardziej skomplikowany. Możesz się posiłkować mnożąc resztę z dzielenia przez stałą, np. 10, 100, 1000 itd i ponownie dzieląc, uzyskasz wtedy kolejne cyfry po przecinku. W ten sposób odkryjesz arytmetykę stałopozycyjną.
Ja mam algorytm i zrobiony podprogram wykonujący takie dzielenie, ale jest napisany na inny procesor. Dziwię się że ktoś jeszcze zajmuje się takimi procesorami. Z czystej ciekawości jestem ciekawy co cię zmusiło do stosowania takich uP?. Natomiast jeśli chodzi o dzielenie to łap mnie na GG, to jest sporo tlumaczenia zwłaszcza, że nie będę mógł ci pomóć...
Skoro dzielenie (takie lub inne) jest w jakiejś funkcji, algorytm nie ma znaczenia, aż do powrotu z funkcji, wtedy dopiero jest "skutek" Tylko jeden warunek - do takiej zmiennej w przerwaniu musi być odwołanie wyłącznie w formie odczytu. Jeśli zmienna byłaby modyfikowana i w przerwaniu i w aplikacji to trzeba zapewnić atomowość.
Witam Stosuję obliczenia numeryczne tylko w asemblerze z całkiem dobrymi efektami. Na stronie ATMELA można znaleźć gotowe procedury dzielenia i mnożenia wielokrotnej precyzji, jest pełno stron z przykładami działających procedur. Znalazłem nawet pierwiastkowanie (nie potrafię zrozumieć algorytmu :cry: ). Pisanie programów w asemblerze daje nieograniczone...
Daj sobie spokuj z dzieleniem liczb 16bitowych w 8 bitowym procesorze, bo jeśli nie chce Ci się zrozumieć tego banalnego algorytmu zamiany na BCD to na pewno nie będzie Ci się chciało przekopać przez algorytm dzielenia liczb dwa razy dłuższych niż procesor ;) Algorytm jest bardzo prosty, przesuwasz w lewo a to co odpada wrzucasz do jednostek, robisz...
Cieszy mnie to że chcesz dzielić się swoimi pracami, będę kibicował. Widzę pomiar mocy i prądu w analogu to chyba to nie wyjdzie, choć nie znam algorytmu. Schemat przejrzysty podzespoły dostępne... kuszące. Poczekam na efekty , pytania będą.
[url=http://forum.dzyszla.aplus.pl/topic... dzielenia na wielobajtowych liczbach w systemie binarnym przedstawiłem w zlinkowanym tekście. Jeśli jednak chcesz zastosować stricte zasady dzielenia pod kreską, to również można. Najlepiej potraktuj liczbę wejściową jako ciąg tekstowy. Następnie od jego początku szukaj takiej wartości, która...
>> _greis_ Była o tym wcześniej mowa. Jest to najbardziej standardowy pomiar f, ale ma tą wadę że dla niskich f trzeba stosować długie czasy pomiaru. >Przemekdz Niekoniecznie trzeba stosować real/float. Przy nowych założeniach f wzorcowa 10 khz f mierzona 1-100Hz Dla 1 Hz zliczymy 10000 impulsów, dla 50hz 2000 impulsów, dla 99.9hz 1001 impulsów....
Witam Jestem w trakcie pisania programu do pracy inżynierskiej, który używał by optymalny algorytm Crouta i nie mogę sobie poradzić z pomijaniem zer. Mam już napisany pełny algorytm Crouta, lecz on wykonuje mnożenia i dzielenia przez zero. Optymalny algorytm pomija zera i nie wykuje działań przez co skraca się czas obliczeń. Będę bardzo wdzięczny za...
A, to przepraszam. W takim razie algorytm jest prawie poprawny.... Pierwsze dzielenie spowoduje już na początku utratę ostatniej cyfry. Więc najpierw modulo, a potem dzielenie całkowite. Co do warunku pętli - nigdy nie pamiętałem, czy przerwie na false czy true - użyj najlepiej debugera, albo przynajmniej kilku przykładów.
Witam, zabieram się za stworzenie prostego, ale efektywnego algorytmu rysowania trójkątów. Pośrednio do osiągnięcia celu potrzebuję algorytm do rysowania linii ukośnych. Najpierw chciałbym zaimplementować to w dowolnym współczesnym języku programowania, a docelowo zaimplementować sprzętowo. Samych algorytmów rysowania linii jest co najmniej kilka, jednak...
Witam, rozwiązanie nazywa się algortym dead-beat. Załączam obrazek z procedurą rozwiązania. Uwagi 1. dyskretyzacja ZOH - tablice 2. czas próbkowania na podstawie czasu inercji w obiekcie 3. dzielenie y(z)/y0(z) - długie dzielenie - szeregi w czasie mają taką samą amplitudę przy k->nieskonczoność wobec tego powinno sie to ładnie zredukować. 4. uzyskany...
Mam za mało czasu jeśli chodzi o naukę C. Co do zmiennoprzecinkowych to w pewnych musze ze względu na dzielenie które jest nieuniknione. Chciałem się upewnić czy rozkład zadań jest odpowiedni.
Witam Wydaje mi sie, ze w zapytaniu wkradl sie błąd: chodzipewnie o wzmacniacz antylogarytmujacy, czyli dzialajacy przeciwnie niz logarytmujacy. Pod pojeciem wzmacniacz mnozacy rozumiem natomiast uklad, który wymnaza 2 rozne sygnaly. Z tego co pamietam jest na to jedna metoda. Bazujac na wzorze: log(a*b) = loga + logb mnozenie mozemy zastapic dodawaniem...
Chodzi mi o algorytm dzielenia liczby 14bitowej zapisanej dziesiętnie na dwie liczby 8 bitowe zapisane dziesiętnie. np.liczbie 8148 odpowiadają dwie 31 i 212. liczbie 8276 odpowiada 32 i 84. nie chodzi o konkretny język programisty tylko o algorytm. resztą zajmę się sam. dzięki.
Najprostrzy algorytm polega na dzieleniu przez 10 i braniu reszty z dzielenia jako kolejne cyfry od najmłodszej do najstarszej. Jak będziesz chciał coś szybszego to trzeba będzie troche pogłówkować.
Witam. Wiele jest algorytmów dzielenia. Jednym z nich jest zastosowanie odejmowania. 1. A- 64 bitowa liczba; B - 32 bitowa liczba 2. A:=A-B; 3. Jeżeli A>=B wróć do punktu 2 jeśli nie to idź dalej. 4. W A jest reszta z dzielenia. P.S. jeśli byś chciał wynik dzielenia to musisz zliczac ile było odejmowań.
Z pewnością sposobów jest mnóstwo. Przypomniałem sobie troszkę asembler mcs51. Mam nadzieję, że program w asemblerze wyjaśni wątpliwości (albo pogłębi ;-) ). Skorzystanie z "tabliczki dzielenia" lub "tabliczki mnożenia" na liczbach o podstawie 2^8 przedstawia poniższy program. Tabelę rozbiłem na 3x256 bajtów. Obliczenie realizowane wg zależności x=256*a+b...
Akurat drugi przykład jest bardzo kiepską ilustracją, bo CRC operuje na wielomianach w polu GF(p), gdzie p jest liczbą pierwszą, a dzielenie takich wielomianów to nie to samo co dzielenie liczb dziesiętnych (przede wszystkim nie ma tam "pożyczki"). Na dodatek nie istnieje pole GF(10), bo 10 nie jest liczbą pierwszą. Poza tym w "przykładzie" są błędy...
Witam mam zrobić algorytm który z podanych 10 liczb ma podać mniejsze od 0. Oczywiście w programie ELI, siedziałem na tym dobre kilka godzin ale nie umie tego zrobić :( Dodawać odejmować mnożyć dzielić umie ale tego nie:( Proszę o pomoc:)
Witam, po analizie kilku przypadków, doszedłem do wniosku, że to linijka : [syntax=vb] q = CInt((p + k) / 2) [/syntax] wymaga zmiany. No i zmieniłem zwykłe dzielnie / na \ - dzielenie całkowitoliczbowe. [syntax=vb] q = CInt((p + k) \ 2) [/syntax] I pomogło. Teraz nawet tablica 800000000 elementowa jest sortowana :)
witam, musze zrobic dzielenie 2 doubli, czyli musze podzielic dwie mantysy 52bitowe. Nie moge uzyc koprocesora, wiec pozostaja rejestry 32bitowe. Probowalem trzymac jedna mantyse w 2 rejesrach (eax, ebx) w jednej byly by 32 bity w drugiej 20. Z druga tak samo. Uzylem algorytmu dzielenia przez odejmowanie, pomijajac fakt, ze jeszcze nie dziala tak jak...
[syntax=c] uint32_t bin2BCD(uint32_t val) { uint32_t retval; uint8_t count, i, *ptr = &retval; retval = 0; for (count = 0; count < BCD_DIGITS * 4; count++) { for(i = 0; i < 4; i++) { ptr[i] += 0x33; if((ptr[i] & 0x08) == 0) ptr[i] -= 0x03; if((ptr[i] & 0x80) == 0) ptr[i] -= 0x30; } retval <<= 1; if(val & (0x08L << ((BCD_DIGITS...
Algorytm zamiany sądzę że znasz: dzielenie liczby przez podstawę i zapisywanie reszt - reszty te tworzą cyfry reprezentacji liczby w nowym systemie (post wyżej). Problem w tym, że są ustawione w odwrotnej kolejności. Tu właśnie przydaje się rekurencja lub tablica do zapamiętywania cyfr - to masz niestety zabronione... Ale chyba można skorzystać z biblioteki...
W atmega8 nie zmieści Ci się dzielenie? Wolne żarty. Przecież funkcja dzielenia 8bit/8bit to kilkanaście instrukcji... 16bit/16bit to ciut ponad 20 instrukcji. Oczywiście istnieje algorytm bin->bcd bez użycia dzielenia, nazywa się "shift-and-add" i jest opisany np. [url=http://www.engr.udayton.edu/faculty...
Nie da się zrobić (po przesunięciu) sumy logicznej z czterema jedynkami na najstarszych pozycjach? Można tak zrobić i chyba tak zrobię tylko wcześniej muszę sprawdzić czy liczba była ujemna. Autora nie chciałbym spotkać na drodze (pisze lewo, przesuwa w prawo ;-) ) Albert faktycznie, miało być w prawo A że się tak zapytam czy przypadkiem nie chodzi...
Witam! Trzeba zrobić w oparciu o ten szkielet: Dodano po 54 Dodano po 1 Oops... zadeklarowałem zmienną "i" a powinno być "a"... sorry K.G.
Nie wnikałem w procedury dziel i zwyciężaj, ale już na pierwszy rzut oka zauważyłem błędy w procedurach "poczatek" i "wprowadzanie". Poniżej są te dwie procedury po poprawieniu błędów. Podstawowym błędem było dwukrotne wywoływanie funkcji IOresult. Ponadto w poprzedniej wersji procedury "wprowadzanie" użytkownik zmuszany był do wprowadzania danych pojedynczo,...
Jeśli nawet się nie da, to są tam operacje kopiowania rejestrów 16<->32 bit, coś się powinno dopasować. Algorytm w poście wyżej uzupełniłem, zakłada że mnożenie i dzielenie działają na 32 bitach. Sprawdź i daj znać o wynikach :)
Algorytm był prosty - najpierw dwie diody najbliżej wtyczki, z jednej i z drugiej strony. Ja działam inaczej, dzielę szereg na pól i sprawdzam (mam odpowiedni zasilacz) i już po jednym pomiarze mam połowę lampek sprawdzoną/sprawną, potem połowę nieświecąca znów dzielę na pól i po dwóch pomiarach mam 1/4 szeregu lampek z błędem itd itd.
Witam, Mam następujacy problem chcialbym zrealizować następującą funckję: Y = 440 - 0,014*X gdzie Y,X to liczby 2 bajtowe Czy ktoś ma jakiś pomysł jak jakimś prostym (mało zajmującym miejsca) algorytmem to zrobić? Ew. Jak sie wykonuje mnożenie i dzielenie 2 bajtowych liczb optymalnie? Chodzi o język asambler. z góry dziękuje
W szkole uczą dzielenia ręcznego w formie tabelki. Z dzieleniem w formacie dwójkowym jest tak samo. Ma tylko jedno ogromne uproszczenie: W systemie dziesiętnym liczba w pobranym fragmencie może nam się zmieścić 0, 1, 2, 3... lub 9 razy i zostaje nam reszta. W przypadku dzielenia dwójkowego liczba może się zmieścić 0 lub 1 raz... i zostaje nam reszta...
To jest dosyć ciekawy temat - tradycyjne dzielenie liczb jest czasochłonne bez sprzętowego układu dzielącego. Dlatego ludzie upraszczają sobie życie stosując dodatkowe algorytmy, działające dla określonych dzielników. Dla dzielenia przez kolejne potęgi liczby 2 wystarczy przesuwać rejestr w prawo. Z kolei przytoczona przez Ciebie procedurka dotyczy...
Witam, najmocniejsze algorytmy kompresji mają WinRK i PAQ8. Ale kompresują one długo i nie wiem czy pozwalają dzielić archiwa. Pozdrawiam, Krzystzof.
No, to już można stwierdzić, że to nie jest CRC z wielomianu w arytmetyce modulo 2 - jak wziąłem wszystkie dane, i przeliczyłem, to na końcu było: 00000006 => 1502 (5DE) 00000005 => 0173 (0AD) 00000004 => 1895 (767) 00000003 => 1865 (749) 00000002 => 1831 (727) 00000001 => 1716 (6B4) Gdyby to było takie CRC z wartością początkową, to exclusive-or (operator...
Witam !! Potrzebuje policzyć wartość skuteczna napiecia sinusoidalnego. Sygnal (50hz) podaje na 12bitowy A/C i nastepnie wyliczam go wegług Usk= √1/n * ∑ U_{sk} = \sqrt{\frac{\sum_{1}^n - chodzi Tobie o ten wzór ? Jest kilka metod (Herona, Newtona - powinno być w dobrych tablicach matematycznych). Mi najbardziej do gustu przypadła metoda...
Tu jest taki dość "przyjazny" algorytm, bez dzielenia i mnożenia, ale potrzebne są instrukcje przesunięć logicznych, porównywania, oraz AND i OR http://www.cp.eng.chula.ac.th/~krerk/pub... Jest jeszcze coś takiego, myślę, że Ci będzie pasować. Liczy pierwiastek z 32 bitowej liczby naturalnej (n), wynik w root: root=0 for(N=15;...
Cześć! Najprostsza metoda o jakiej słyszałem to liczenie "przejść przez zero". Nagrywamy polecenie 5-10 razy, wykrywamy początek słowa, dzielimy na 20-100ms segmenty i liczymy średnią ilość przejść przez zero w danym segmencie, dobieramy zakres tolerancji (eksperymentalnie). Sporo roboty przy tworzeniu wzorca ale samo rozpoznawanie jest szybkie. Pozdrawiam!...
W moim AVRStudio zajmuje tyle samo, co jest raczej całkiem normalne. :) Faktycznie biorąc pod uwagę ATMega8 to taki programik zajmuje ponad połowę flasha. Głównym problemem jest to funkcja: dtostrf(x,5,2,buf); To ona zajmuje większość flasha, bo przy jej okazji pakowana jest cała arytmetyka zmiennoprzecinkowa. Sposobem na to jest operowanie...
O ile dobrze pamiętam bascom na 2 rodzaje operacji dzielenia jedno w wyniku daje liczbę całkowita 2 liczbę rzeczywistą. Poza tym wykorzystanie dzielenia to przesada, lepiej i szybciej jest wykonać 4-krotne przesunięcie w prawo, które jest równoważne podzieleniu przez 16. AVR nie ma instrukcji dzielenia wobec tego wykorzystujesz skomplikowany algorytm....
Nie rób modulo, bascomowi zeżre to w cholerę cylki Zrób tak, jak jest, czyli AND 3 - to jest to samo, co modulo 4, a ogólnie wszystkie operacje typu modulo potęga dwójki można zastąpić taką konstrukcją: a MOD (2^b) = a AND ((2^b)-1) np. a MOD 32 = a AND 31, a MOD 512 = a AND 511 Ten sposób działa szybciej na każdej architekturze, bez wyjątków :) w wypadku...
Jeśli chcesz to zrobić bez instrukcji przypisania, to używasz tzw. transformacji "worker-wrapper" (po polsku pracodawca-pracownik? :P) Dodatkowym plusem jest fakt, że tak wyrażona rekursja jest rekursją ogonową (wywołanie rekurencyjne jest ostatnią operacją wykonywaną w funkcji, stąd rekursję prosto da się zamienić na iterację). Oczywiście kod napisany...
Wystarczy zliczyć ilość cykli(n) w ustalonym czasie (dla uproszczenia 1s) i poczekać do końca następnego cyklu i zakończyć zliczanie czasu (1,xxx s) Teraz dzielimy (n+1)/1,xxx i mamy częstotliwość z ułamkową dokładnością. Ta zależy od dokładności pomiaru czasu i algorytmu dzielenia (od tego jaką daje część ułamkową). Więc w istocie lekko zmodyfikowana...
1 liczysz okres. 2 dzielisz przez 4 3 odejmujesz 15us 4 dzielisz przez 0.2 (nie 0,5 to pozostałość!!!) 5 to co wyszło odejmujesz od 0xFFFF Albert
Quarz, dzięki bardzo za dość dokładne opisanie istoty algorytmu, ale po konsultacjach z paroma osobami postanowiłem jednak skorzystać z metody węzłowej, pomimo trudności obliczania macierzy odwrotnej, czy wspomnianych przez Ciebie np. problemów z dzieleniem (które tak na prawdę nie są problemem). W metodzie oczkowej (przynajmniej jak dla mnie) może...
Idea polega na tym, że wskaźniki krążą po buforze w tym samym kierunku, tak jakby koniec bufora połączony był z początkiem, stąd nazwa "bufor cykliczny". Po dojściu do końca bufora wskaźnik przeskakuje na jego początek. Pierwszy zawsze jest wskaźnik zapisu, za nim podąża wskaźnik odczytu. Jeżeli oba wskazują na to samo miejsce to znaczy że bufor jest...
troche późno odpowiadam ale jak to mówią lepiej... więc najpierw mnożenie i dzielenie wydaje mi się że dałem Ci najlepszą rade jaką mozesz dostać, mnożenie i dzielenie są dość skąplikowane to fakt, dlatego nie sądziesz chyba że ktoś napisze to za Ciebie Ja natomiast dałem Ci linka do strony gdzie masz i mnożarki i dzielarki gotowe do ściągnięcia i do...
Pytanie pierwsze brzmi: czy to możliwe, że operacja pobrania liczby losowej może oczekiwać na zmianę zegara systemowego, aby ją wygenerować? Liczby pseudolosowe można generować w ten sposób, że jest to reszta z dzielenia przez jakąś liczbę (od tego zależy zakres liczb) liczby sekund jakie upłynęły od 1 stycznia 1970 roku. Tę liczbę sekund można także...
Weź pod uwagę, że w kodzie powyżej jest prymitywny algorytm sprawdzania liczb pierwszych przez dzielenie modulo przez poprzednio znalezione. Szybkość sita też spada - ale ja pytam, jak te szybkości się porównują. do przedziału fib(46) - fib(47): 30 sekund / 3 godziny (tak z grubsza) Dodano po 1 Nieco szybsze od sita Eratostenesa jest sito liniowe. Przy...
Mnóż(y, z) 1 x = 0 2 while z > 0 3 do if z mod 2 = 1 4 then x = x + y 5 y = 2 · y 6 z = [z/2] 7 return x No przypadek pesymistyczny będzie wtedy kiedy będziemy dzielić lb. przez 2 i będzie ciągle nieparzysta. (to wynika z kodu), więc: przykładem pesymistycznym np. może być z=15, y obojętne (operacja dodawania jest wykonywana...
Dziekuje za szybką odpowiedź. Proszę mi uwierzyć, że zadałem sobie sporo trudu i rozumiem na jakiej zasadzie wzór działa i jak fajnie można uniknąć kalkulacji floating point w asemblerze za jego pomocą. Użyłem go w też w swoim projekcie. Jedynie czego nie mogę zrozumieć to w jaki sposób wyliczyć ilość wymaganych przesunięć w prawo. Autor projektu aby...
algorytm dzielenie dzielenie liczba algorytm algorytm dzielenie reszta
kontrolka oleju cieplym silniku schemat przekaźnik optoizolacją falownik prąd silnika
medion akoya spawarka inwertorowa
Kody błędów podnośnika ESDA TA 2220 - diagnostyka i rozwiązania Wymiana blokady drzwi w pralkosuszarce Ariston