...Da się jakoś ten problem rozwiązać ? http://pl.wikibooks.org/wiki/C/Operatory...
Taki program mógłby wyglądać tak: Mnożna: rejestr E Mnożnik: rejestr A Wynik: rejestr HL LD HL,0000 ;inicjacja wyniku LD B,08 ;licznik pętli LD D,00 ;zerowanie bardziej znaczącego bajtu DE NXBIT ADD HL,HL ;przesunięcie wyniku w lewo RLA ;sprawdzenie cyfry monożnika JR NC, FIN ;opuszczenie zera ADD HL,DE ;dodanie mnoznej FIN DJNZ NXBIT ;powrót do początku...
Za zadanie mam mnożenie dwóch liczb 3-bitowych. Czy jest ktoś w stanie mi powiedzieć, czy jest dobrze? https://obrazki.elektroda.pl/1711311500_...
No więc jest na to prosty sposób i zwie się fixed-point math. Zakładasz, że liczba jest zapisana w formacie np. 4:4 bity , gdzie 4 wysokie bity to liczba całkowita w przedziale 0-15 , a 4 niższe to ułamek w przedziale 0/16-15/16 Jeżeli mnożysz liczbe 8:0 przez 4:4 to masz wynik 12:4 i wszystko cacy - masz swój wynik i wartość ułamkową. Jeżeli chciałbyś...
zadeklaruj w funkcji zmienne jako long...
Witam poszukuje procedury mnożenia liczb 16 bitowych na 8051. Czy ktos może mi pomóc??
Już kilka razy pisano Ci powyżej, że problem leży w tym, że wynik mnożenia dwóch liczb 16-bitowych na AVR ma 16 bitów, i że wystarczy napisać: suma+= (uint32_t) tab[indeks]*tab[indeks]; żeby iloczyn miał 32 bity, to po pierwsze. Po drugie - algorytm, który przyjąłeś, jest zabójczy dla 8-bitowego AVR. Co chwila zmieniasz założenia, a kompletnego kodu...
Nie wiem w takim razie w czym problem, to prosta matematyka. A procesor ma funkcje mnożenia i dzielenia 8bit wystarczy zrealizować rozszerzenie na 16bit. Tak ma 8bit, ale nie wiem jak optymalnie napisać np mnożenie dwóch liczb 16 bitowych, ma ktoś jakiś kod ?
Witam. Gdzie znajdę gotowe procedury w asemblerze dla pic 16f84 np. mnożenie,dzielenie liczb 32-bitowych itp.
Bo tam są 16-bitowe dane i 16-bitowe współczynniki, a łącznie jest ich 60. A więc z każdego mnożenia danych i współczynnika wyjdzie Ci liczba 32 bitowa i takich liczb trzeba zsumować 60. A więc wynik zwiększa się aż do prawie 38 bitów (dokładnie 38 bitów miał by dla zsumowania 64 liczb).
Koledze chyba bardziej chodziło czy ma to być mnożenie na sucho jakiś z góry ustalonych liczb, czy ma się dać jakoś je wprowadzić:>
dobra a wiec od nowa pisze co i jak, dostałem od nauczyciela trzy pytania dotyczace asemblera, ja osobiscie jeszcze nic w nim nie robilem nie mialem stycznosci i troche go nie kumam.... 1. Inkrementacja jest to..., natomiast dekrementacja jest to ... w języku programowania ASEMBLER 2. Napisz prosty program w ASEMBLERZE dla układu 8051 realizujący funkcje...
Cześć. Chciałbym zrobić układ do mnożenia dwóch liczb 3-bitowych za pomocą bramek logicznych. Z tego względu, że na wyjściu jest więcej jak jedna kombinacja, to nie wiem, jak sobie z tym poradzić za pomocą tablic Karnaugha. Ktoś pomoże i mi poradzi oraz powie, jaki jest algorytm projektowania dla tego zagadnienia?
A obydwie zmienne (2,3) powinny być wtedy w nawiasie? Niestety nie. Chociaż w powyższym przypadku będzie ok, bo żadna jawna konwersja nie jest potrzebna. Mnożenie dwóch liczb 16 bitowych może dać maksymalnie 32-bitowy wynik, a ponieważ 32 bitowy typ int jest domyślny na ARM więc jest ok. Niemniej konwersja na uint64_t następuje dopiero po wykonaniu...
(at)ElektrodaBot Cześć. Chciałbym zrobić układ do mnożenia dwóch liczb 3 bitowych za pomocą bramek logicznych. Z tego względu że na wyjściu jest więcej jak jedna kombinacja to nie wiem jak sobie z tym poradzić za pomocą tablic kraghuta. Ktoś pomoże i mi poradzi powie jaki jest algorytm projektowania tego zagadnienia?
Proszę o podpowiedź czy układy CPLD/FPGA będą w stanie przetworzyć operacje matematyczne w kilku cyklach zegarowych (może nawet w jednym cyklu) ? Temat dotyczy sprzętowego (bardzo szybkiego) mnożenia liczb 64bit x 64bit a nawet 128bit x 128bit, Większość nowoczesnych układów FPGA ma wbudowane sprzętowe układy mnożące, tyle że one operują na liczbach...
Chciałbym stworzyć układ do mnożenia liczb dwu-bitowych, używając tylko bramek NOR. Wcześniej zaprojektowałem układ podnoszący do kwadratu cyfry dziesiętne zapisane w naturalnym kodzie dwójkowy i próbowałem w oparciu o ten układ coś wykombinować, ale niestety poległem. Bardzo był bym wdzięczny jeśli ktoś mógłby mnie nakierować/podpowiedzieć jakoś jak...
ATMega ma ALU zdolne do mnożenia dwóch liczb 8-bitowych w 1 cyklu zegara... http://ww1.microchip.com/downloads/en/Ap... W sumie to istniał układ mnożący dwie liczby 4-bitowe - 74284. Tu masz ładne omówienie teorii, z przykładami: https://www.electronicshub.org/binary-mu...
Witam. a i x są liczbami 16 bitowymi. wykonałem mnożenie liczby 16bitowej przez 16 bitową i teraz mam problem bo nie mogę zrobić dodawania(+b). wynik mnożenia liczba 32bitowa, chciałem dodać jakąś liczbę 8bitowa. moje pytanie jak zrobić w asemblerze dodawanie liczby 8b do 32b?
Masz napisać procedury mnożenia liczb: 1 bajtowej przez 1 bajtową (8x8) wynik będzie 16 bitowy (2 bajty) 2 bajtowej przez 1 bajtową (16x8) wynik będzie 24 bitowy 3 bajty 2 bajtowej przez 2 bajtową (16x16) wynik będzie 32 bitowy (4 bajty) Procedura przebiega tak w kodzie naturalnym binarnym: 1. Przygotowujesz rejestr wyniku o długości równej sumie ilości...
Witam, mam problem z realizacją układu mnożącego liczbę 4 bitową przez 2 bitową . Mnożnik należy traktować jako wejście układu. Do realizacji dostępny jest układ 74181. W jaki sposób można uzyskać taki iloczyn?
Wydaje mi się, że to drugie mnożenie jest źle zrobione. Jeżeli używasz instrukcji MUL_M do liczb 32 bitowych, to wynik masz 64 bitowy. Zastosuj instrukcję MUL_E, tak jak w pierwszym mnożeniu.
Mnożysz lewą cyfrę przedstawiającą wartości dziesiątek x10 i dostajesz 10100 binarnie mnożenie warto zrealizować jako odpowienie przesunięcie bitowe, gdy mnożysz x10 to tak jakbyś mnożył x8 i mnożył x2 27x10 = 27x(8+2)= 27x8 + 27x2 = 27x2^3 + 27x2^1 czyli wynik mnożenia dowolnej liczby x10 jest rowny sumie jej przesuniecia w lewa o 3 bity i przesuniecia...
To jest to o co mi chodziło, ale mam pytanie i niejasności związane z tym tekstem, bo nie mogę go zrozumieć i narysować. Nie chce być lamą ale to jest takie zagmatwane, że brakuje mi pomysłów: (2 sumatory 4 bitowe, 2 rejestry 4 bitowe pamiętające wynik) Wyjście sumatorów podajesz na wejście powyższych rejestrów, Na jedne z wejść np a0,a1,a2,a3,a4,a5,a6,a7...
Niestety, Twój schemat jest błędny. Do pełnego układu mnożenia 2 liczb 4-bitowych musisz użyć 16 iloczynów (to masz dobrze) i 12 sumatorów pełnych lub 10 pełnych i 2 bez wyjścia przeniesienia. Postaraj się o dostęp do książki Pieńkoś Turczyński "Układy cyfrowe TTL w systemach cyfrowych" i tam na stronie 349 masz rozrysowane jak to wszystko trzeba ze...
Witam was drodzy koledzy. Prosiłbym was o mała pomoc gdyż swoja przygodę z elektronika zaczolem dwa lata temu, gdy poszedłem do szkoły a w tym roku doszedł mi przedmiot z układów cyfrowych, którego nie za bardzo rozumiem. Ale nie o to tu chodzi żebym opisywał swoje życie tylko chciałbym się zwrócić z prośba o pomoc w rozwiazaniu zadania, które brzmi...
Chyba doczytałeś tylko do pierwszego algorytmu na w/w stronie... :] Oczywiście mnożenie dwóch zmiennych 32 bitowych da Ci 64 bity wyniku, więc i mnożenie i dzielenie modulo musisz wykonywać na takich argumentach. Pozdrawiam, Dr.Vee
Owszem będzie jeśli zależy Ci na szybkości wykonywania programu. Operacje na 32 bitowych liczbach w AVR-ku są bardzo wolne ponieważ procek musi się nieźle napocić z przeniesieniami itd. Jak wolne? Ile może trwać np. mnożenie dwóch kilkucyfrowych liczb, albo obliczanie pierwiastka kwadratowego?
Używam do pisania w języku VHDL programu Xilinx ISE 9.1i ale bardzo mi on nie leży. Na zajęciach korzystamy z WebPacka, który jakoś bardziej według mnie jest przysfajanly jednak problem jest z legalnością tego więc jadę na wyżej wymienionej darmówce. Może mi ktoś powiedzieć czy idzie to jakoś zoptymalizować i wyłączyć zbędne funkcje żeby nie wciągało...
Witam, chcę wykonać układ mnożący 2 liczby 4bitowe. Sugestia, to zrobić ten układ na licznikach. Liczby będę podawał zwykłymi przełącznikami równolegle, i wynik wyświetlał na diodach. Kto ma pomysł, odnośnie realizacji ? A nie lepiej użyć 74181?
1. Round() dostaje argument całkowity, zamienia go na float, a następnie z powrotem na int. Operacja ta nie robi nic, za to zajmuje zapewne grube setki cykli procesora. 2. Te pętle while() działają tak: tak długo, jak jest spełniony warunek, zapalaj (już zapaloną diodę) i czekaj - ciut bez sensu. Dlaczego nie: if (NORTH() < SOUTH()) zapal; else zgaś;...
Możesz wykorzystać w tym celu układ scalony 74181, który jest 4-bitowym ALU w technologii TTL. Na jedno wejście podajesz na stałe liczbę 9 a na drugie liczbę 4-bitową. Jako funkcję wybierasz mnożenie arytmetyczne. Pozdrawiam wszystkich jjanek
Czy ktos wie jak zrealizowac podstawowe funkcje arytmetyczne ( dodawanie ,odejmowanie, dzielenie mnożenie) na liczbach 16- bitowych w procsorze 99c51.
nikt nie liczy alpha blendingu tylko mnożył 3 liczby 8 bitowe.
Mam taką funkcję przyjmującą godzinę w postaci stringa i porównującą ją z atualnym czasem: Zakładaj proszę tematy we właściwych działach. Temat przeniosłem.
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...
przesuwanie i dzielenie to to w gruncie rzeczy to samo. W systemie dwójkowym dzielenie przez 2 to przesuwanie, w dziesiętnym przez 10 to przesuwanie w ósemkowym przez 8 to przesuwanie itd. Jak masz problem z dzieleniem "dużych" liczb to nie zapominaj że dzielenie i mnożenie jest przemienne i czasami łatwiej to zrobić z argumentem np 8 bitowym niż potem...
To jest dość proste do rozwiązania. Załóż, że użyjesz EPROMu. Masz dwie zmienne 4-bitowe, wynik ma składać się z (zapewne) 3 lub 4 znaków. Podłącz do EPROMA: - nogi A0-A1 - wejście do multipleksowania wyświetlacza (do obsługi czterech cyfr) - nogi A2-A5 - wejście argumentu #1 - nogi A6-A9 - wejście argumentu #2 - nogi A10-A11 - wejście typu operacji...
zaloze sie ze wszystko ma byc zrobione na bramkach albo co gorsze na jednym rodzaju bramki... :P tez przez to przechodzilem, co nie znaczy ze wiem jak to zrobic :) narazie nie przychodzi mi nic do głowy oprócz tego zeby po zsumwaniu liczb wynik sumowania zsumowac z soba jeszcze 3 razy :)
Co do możliwości zrobienia na bramkach, to takie coś jest elementem układu mnożenia liczb metodą [url=https://en.wikipedia.org/wiki/Walla... tree. Prościej mógłby być zrobiony układ działający sekwencyjnie: generator sygnału zegarowego podaje impulsy na CD4017 z wyjściami połączonymi poprzez oporniki z przełącznikami łączącymi do masy, zasilany...
Otrzymane 2 bajty łączę w liczbę 16 bitową. Mnożę ją przez 10 i dzielę przez 16 (tj. przesuwam o 4 bity w prawo). Mam w wyniku temperaturę 10x większą niż w rzeczywistości. Ewentualne obliczenia i ustawienia wewnątrz programu robię na liczbach 10x większych. Dla procesora to żadna różnica. Wyświetlaniem zaś zajmuje się za każdym razem ten sam podprogram,...
To działa tak samo dla dowolnej ilości bajtów. Liczbę wejściową wysuwasz z najstarszego bitu najstarszego bajtu Czyli przesuwasz liczbę 32 bitową (mnożysz przez 2). Wysunięty bit (w znaczniku przeniesienia) wprowadzasz do najniższego bitu najniższej tetrady liczby BCD. Przed każdym kolejnym przesunięciem sprawdzasz każdą tetradę czy nie jest >=5...
Czy mógłbyś pokazać jakiś schemat ? Mam tylko 5 przerzutników, a to co Ty proponujesz musiałoby korzystać z 8 (bo z założenia ma to być układ mnożący przez 3 liczbę 8-bitową).
Problemem jest mnożenie stopy*3 i samo przypisanie wartości tej zmiennej. int na aVR ma 16 bitów i nijak nie da się mu przypisać wartości 76384 bo jest spoza zakresu. Potem to mnożysz, tym bardziej przekraczając zakres i gubisz bity znaczące. Sama konwersja 16-bitowej wartości na dwie 8-bitowe jest poprawna.
poziom:=cisnienie* 10.19716; (*wartosc rzeczywista - przeskalowanie ciśnienia na wysokosc slupa wody*) poziomCentymetry:=TRUNC(poziom*1... (*poziom w centymetrach+ odcięcie czesci po przecinku*) 1. czyli poziomCm = cisnienie * 1019.716, spodziewasz się wartości od 0 do 1000 cm, więc cisnienie < 1.0 bar 2. ciśnienia...
I wszystko się zgadza. Wynik mnożenia (256*adc1) jest zapisywany jako liczba 16 bitowa, a więc już masz obcięcie i dalej muszą wyjść bzdury. Samo to mnożenie jest zresztą bez sensu, bo mnożysz tylko po to, żeby zaraz potem dzielić, więc to samo ale bez przekroczenia zakresu wartości mógłbyś policzyć jako 62500u / adc1.
Rejestr na mnożnik, mnożną, rejestr przesuwający i sumator. Albo układ kaskadowy sumatorów, tutaj do mnożenia dwóch liczb czterobitowych: https://obrazki.elektroda.pl/7065864100_...
Z drugiej strony pisząc w języku C nie za bardzo ma sens zastanawianie się co ile cykli zajmuje - to jak program będzie skompilowany zależy od kompilatora, jego wersji i przede wszystkim opcji kompilacji To akurat Mirku jest prawda. Chyba nie przeczytałeś reszty zdania. Przy włączonej optymalizacji mnożenie x*15 i x*16 będą się różnie wykonywały......
tylko nie wiem w którym momencie to przegapiłem w moim kodzie i o to właśnie proszę, o wskazanie gdzie gubię bity / przekraczam zakres prawie w każdym mnożeniu, zwłaszcza jeżeli tablica Cal edit: hmm... widzę że próbowałeś tak robić? (zmienna tmp?) no i biorąc pierwszy z brzegu przykład, tmp=Cal[2]*dUT, mnożenie dwóch liczb 16bit, wynik przekracza...
Witam, mam do rozwiązania zadanie, w którym trzeba zrobić układ iteracyjny mnożący liczbę binarną 16-bitową razy 3. Nie mam pojęcia jak narysować graf do tego układu. Czy mógłby ktoś narysować ten graf? Pozdrawiam
akurat ten wariant jest dla liczb <0 do wartości -32767. Chcę z tego zakresu uzyskać odpowiadające wartości dodatnie z zakresu 0 ... 65535. Mnożę zatem ten pierwszy zakres przez -1, potem mnożę przez dwa przesuwając bitowo w lewo o jedną pozycję i odejmuję 1, żeby uzyskać przy minimalnej wartości z pierwszego zakresu maksymalną liczbę z drugiego....
:) Dzieki doceniam ale to już wogole mnie przeroslo :) zeby cos z tego wyciagnac trzeba cosik rozumiec :) a ja ni w ząb ktorej sekcji mam się przyjzec i jak moge ja przerobic zeby mnozyla liczby 7 bitowe przy zachowaniu algorytmu mnozenia metoda Bootha. Chetnie pomoge w kazdej innej dziedzinie... ale ASM to nie moja bajka :/
Nie mam na myśli zmiany wartości (i mam wrażenie, że nic takiego nie napisałem), tylko zmianę tego, jak zmienna działa (jest interpretowana) jako indeks pętli. Nie jest dobrze, że działania w których używa się wartości zmiennej, wpływają na inne operacje, które jej dotyczą. W bardziej złożonym programie takie oddziaływanie "wstecz" będzie raczej nie...
Jak liczba 62-bitowa jest stała to mnożenie jest jeszcze prostsze bo wystarczy napisać stały algorytm bez żadnych skipbittestów - to jedna sprawa. Po drugie lepiej takie mnożenie robić w bazie danych - transmisja będzie 2x szybsza a i samo mnożenie na PC-ie szybsze.
Mam 3 algorytmy: bootha karatsuby i jeden inny wszystkie mnożą mi liczby 32 bitowe w symulatorze Isim (Web Pack ise). Podczas symulacji moge ustawić dowolny czas symulacji ale nie wiem jak długo sam taki algorym liczy. Wiek ktoś w jaki sposób można by było porównać czas mnożenia tych algorytmów?.
Witam, Mam za zadanie napisać w assemblerze (pod RAID-em) program działający na zasadzie kalkulatora, ale mający tylko jedną funkcję - mnożenie liczby 8 bitowej przez 16 bitową. Niestety kompletnie nie wiem od czego zacząć i jak tak naprawde ten program powinien być skonstruowany. Dodam, że czasu pozostało mi niewiele - do poniedziałku (tego!). Pojęcie...
co do wyświetlania, to mam panel TD 400 i to na nim chcę wyświetlać wynik temperatury, nie będę wyświetlacza zwykłego podłączać do sterownika. poprawiłem "działanie": http://obrazki.elektroda.pl/2934606300_1... ale chyba ni będę mógł użyć bloczka DIV_I ponieważ na liście rozwijanej w instrukcjach Integer Math jest wyświetlonym przy nim...
No! Dzięki! Rzeczywiście nie takie to trudne:) Użyj klasycznego mnożenia liczb wielobajtowych, kilka mnożeń i kilka dodawań. Klasyczne mnożenie liczb wielobajtowych, może dotyczyć liczb np. czterobajtowych? lub więcej? Gdzie o tym mogę poczytać?. Czy w trakcie wykonywania operacji wielobajtowych lepiej używać stosu czy rejestrów i przełączać się między...
Zauważ, że przy podnoszeniu do potęgi ilość bitów rośnie w przybliżeniu z wykładnikiem potęgi: 2 -> 15*15=225 -> 8 bitów 3 -> 15^3=3375 -> 12 bitów czyli układ się rozbudowuje. Budowa takiego układu na pojedyńczych bramkach jest raczej nieopłacalne raczej trzeba stosować układy większej skali integeracji i przyjąc jakąś metodę mnożenia liczby przez...
Dzielenie przez 8 to nic innego jak przesunięcie o 8 bitów w prawo, czyli w przypadku 8-bitowych procesorów wywalenie najmłodszego bajta wyniku. Dzielenie prze 8 to nie przesunięcie o 8 bitów w prawo, tylko o 3 bity. Do autora: dzielnie wlaczysz, tracisz czas, a na końcu koledzy podsyłają ci funkcje arytmetyczne zaimplementowane w C. Jaki jest więc...
A jak myślisz na czym oparta jest funkcja Random? Praktycznie wszystko softwarowe ma charakter pseudolosowy. Można kombinować z początkiem (ziarnem), ale wcześniej czy później skończy się na mnożeniu dodawaniu i operacji reszty z dzielenia. Spróbuj ze zbioru 4 miliardów liczb (32 bity) wybrać wszystkie w pseudolosowym porządku bez powtórzeń. Albo żeby...
ADMUX=0b10000000; //kanał 7 ADC Zamiast 7 ustawiasz zerowy kanał ADC, a ten pin wykorzystujesz jako wyjście na wyświetlacz przecież... nic dziwnego, że bzdury wychodzą. O co chodzi z tym mnożeniem przez 100 (i dlaczego w przerwaniu, do tego jeszcze na zmiennej globalnej)? Jeśli już to powinno być przez 2 (wtedy wystarczą liczby 8-bitowe) albo (na 16-bitowych)...
Zdefiniuj zmienną Temp jako Word. Jak ci ma wyświetlić 600 jesli zmiena Byte może przyjąc max wartość 255. Właśnie powyżej tej wartości będą ci sie wyświetlać dziwne rzeczy. No to może wytłumaczę jak to zrobić na zmiennej typu Byte według wyżej wspomnianej ideii. $crystal = 4000000 $regfile "attiny2313.dat" Dim Pomiar As Single Dim Temp As...
"przesuwa" zmienną i o jeden bit w lewo (tj. mnoży przez 2). Równoważne czemuś takiemu: << to operator przesunięcia bitowego w lewo.
Nie testowałem kodu w całym zakresie liczb. Mój zbiór jest mniejszy. Jak widzisz jest tam przesunięcie 16 bitowe. Szacunkowo nie powinien nawet przekraczać 32 bit lub tylko troszke, zmienna "a" może mieć nawet w okolicach 17-18 bitów. Używam 32 bitowych bo 17-18 bitów się nie zmieści w 16. A mnożenie 24bit*16bit nie zmieści się w 32 bitach. Jak wyjdą...
Dostaje dane o wilgotności z tego czujnika (12 bitów) i mam je zapisane w dwóch rejestrach. Poszukuje wszelkich materiałów dotyczących tego jak przeliczyć tą 12-bitową liczbę na wartość w % RH. Podobnie z temperaturą. Wogóle poszukuję przystępnych materiałów zawierających opisy procedur do mnożenia, dzielenia itp. liczb całkowitych i ułamkowych w assemblerze.
Witam Na czwartek muszę przygotować listingi programów napisanych w asemblerze które wykonają poniższe działania: 1. Dane są liczby: A=0F1h, B=00011111b. Obliczyć binarnie A+B, A-B, B-A. Podać wynik w postaci binarnej i szesnastkowej. 2. Napisać program mnożenia x4 liczby umieszczonej w rejestrze R7 bez użycia instrukcji mul ab. 3. Napisać program...
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...
Witam. Czy potrafi ktoś pomóc mi z zadaniem z assemblera? Mam do napisania program, który mnoży dwie liczby 5 bajtowe (40 bitów) szesnastkowe oraz podaje wynik również w tym systemie (tylko wynik będzie wtedy 80 bitowy). Problem polega na tym, że do tego mnożenie trzeba wykorzystać algorytm, ponieważ instrukcja mul nie działa dla tak dużych liczb. Mnożenie...
Witam, Uklad kombinacyjny może Ci sie nawet nie zmieścić w takim FPGA. Najrozsądniej by było stworzyć schemat obliczania takiego mnożenia, a następnie optymalnie podzielić operacje mnożenia pomiędzy dostępne układy mnożące - można to nazwać szeregowaniem. Zastanów się - jakoś dla mnożenia 64x64 bity narzędzia syntezują układ wykorzystujący tylko multiplikatory...
Z przetwornika ADC dostaję 24 bity, a pamięć mam 16-bitową Co to znaczy, że masz pamięć 16 bitową? Bo jakoś tego nie rozumiem. To że masz 16 bitów danych z układu pamięci nie oznacza, że STM nie potrafi tego użyć jako "normalną pamięć". Nie rozumiem dlaczego nie możesz robić tego na 24 bitach. Jeżeli chcesz robić operacje ze znakiem na 24 bitowych...
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
Witam, to mój pierwszy post na forum, więc przepraszam, jeśli umieściłam go w złym dziale. Mam problem ze zrealizowaniem układu na laboratorium z układów logicznych. Muszę zrealizować układ mnożący zadaną liczbę 4-bitową przez 1 lub przez 4 w zależności od wyboru, z tym że przez 4 mnożone mogą być tylko liczby z zakresu 0-3. Do dyspozycji mam układ...
... bo nie rozumiem czemu pseudo-twórcy nie dali zmiennych 5 bajtowych... Wtedy zapewne jakiś programista :D-maruda napisał by: "nie rozumiem czemu pseudo-twórcy nie dali zmiennych 6 bajtowych..." itd. Zastanawiałem się nad kiedyś nad zbudowaniem procedur arytmetycznych dla liczb wielocyfrowych i wykorzystaniem klasycznych algorytmów działań pisemnych....
Nie wiem jakie obliczenia robisz, ale przesyłanie danych też zajmuje czas, nie wyślesz dwóch liczb do pomnożenia albo dodania bo wydajność będzie jeszcze gorsza, musiała by to być większa porcja danych której przesyłanie trwa wielokrotnie krócej niż obliczenia, w szybkim przesyłaniu danych Arduino również jest kiepskie. Najszybsza będzie transmisja...
Nie rozumiem po co wartości te są mnożone przez 0x3FF, a następnie dzielone przez wartość 0xFFFF. Obstawiam że chodzi o zmianę "zakresu". Jakie są (typ i rzeczywisty zakres) wartości w tym buforze? Zauważ, że mnożenie przez 0x3FF/0xFFFF to po prostu konwersja wartości z zakresu Całkowicie niezrozumiałe jest dla mnie po co od wartości 511 odejmuje się...
Czasem musimy podzielić wartość zmiennej przez stałą, która NIE JEST całkowitą potęgą dwójki. Można chytrze wykorzystać wbudowaną w procesor mnożarkę. A nawet bez mnożarki sposób jest dobry, bo dzielenie jest przynajmniej dwa razy dłuższe i wolniejsze od mnożenia. Przyjmijmy, że chcemy dzielić bajt X przez stałą D. Znajdźmy „k”, największą...
Argumentem mogą być tylko rejestry 8, 16 lub 32 bitowy. Argument mnożony jest przez odpowiedni AL, AE, EAX, a wynik umieszczany odpowiednio w AX, DX:AX, EDX:EAX. Przykładowo po: [syntax=asm]MOV AL, 5 MOV AH, 10 MUL AH[/syntax] W AX znajdzie się 50 (AX = AH * AL).
Mam spore doswiadczenie w projektowaniu układów cyfrowych, ale o czymś takim nie słyszałem. I przyznam, że nie rozumiem problemu. Bo co to właściwie znaczy "jednobitowy" i ma mnożyć ten bit przez 6 ?! To jakaś bzdura. Natomiast przy mnożeniu liczby (iluś-tam bitowej) przez 6 można skorzystać z zależności, że: y = 6 * a = 4 * a + 2 * a A mnożenie przez...
Własciwie to racja :) zadania ponizej: Zad. 1. Zaprojektować i zasymulować działanie układu sumująco – mnożącego. Na wejście podawane są dwie liczby 3 bitowe oraz sygnał mówiący o operacji arytmetycznej (0 – sumowania; 1 – mnożenia). Na wyjściu pojawia się wynik operacji. Zad. 2. Zaprojktować konwerter kodu: a)Binarnego na „2”...
Ja robiłem to w asemblerze w następujący sposób: mov B,#0Ah ;wpisujemy 10 do B mul AB ;mnozymy A razy 10 add A,<cyfra> ;dodajemy wczytana cyfre do A I generlanie działa to tak, jak wpisujemy liczbę dziesiętną, czyli wpisujemy cyfrę i przesuwamy o jedną pozycję dziesiętna w lewo (co odpowiada mnożeniu przez 10) i dodajemy następną cyfrę itd. Oczywiście...
Witam Jestem studentem I roku informatyki. Potrzebuję wykonać projekt na bramkach logicznych jednego z poniższych układów logicznych. Za wszelką pomoc BARDZO DZIĘKUJĘ! a) uniwersalny 8-bitowy sumator prefiksowy (PPA) dla kodu NB i U2 (dodawanie i odejmowanie) w strukturze Ladnera_Fischera lub Hana-Carsona, b) czterocyfrowy uniwersalny sumator dziesiętny...
Nie widzę jak radzisz sobie z przepełnieniami podczas dodawania i mnożenia, a z opisu problemu wydaje mi się, że u Ciebie właśnie to następuje. Po pewnej ilości działań masz przepełnienie i dalsze wartości są błędne. Pamiętaj, że gdy mnożysz dwie liczby 8-mio bitowe wynikiem jest liczba 16-to bitowa i musisz z niej wybrać któreś 8 bitów do dalszego...
Odstęp nie będzie miał ściśle określonego czasu, a ani jednego bitu więcej w ramkę nie upchniesz, nawet gdyby miał określony czas, bo nie zmienisz wartości bitu startu ani stopu UARTa. Te 30% "wolnego" czasu procesora zajmie kodowanie danych do transmisji. Ciekawe, czy się wyrobi... - niekoniecznie moim zdaniem, zwłaszcza, że występują tu i dane 12-bitowe...
Przetwonnik zlicza napięcia tylko do 2047, pokazując ujemne napięcie nie ma znaku minus i wartość, tylko np 65320. Czyli przetwornik zwraca wyniki w kodzie U2. Tam nie ma znaku minus. Jest za to przesunięcie poziomu. Najprościej mówiąc, zastosowanie takiej funkcji do konwersji: Napiecie = Zmierz1 * 256 Napiecie = Napiecie + Zmierz2 da Ci złe wyniki....
Ale tablica potrzebna do wyznaczenia wartości elementów ciągu ma rozmiar tylko taki, który element ciągu chcesz poznać. Jak chcesz 50-ty, to potrzeba tablicy 50-elementowej typu long long. Co więcej - po wyznaczeniu wartości elementu ciągu można śmiało ją usunąć. W algorytmie sita nie ma możliwości efektywnego skrócenia wielkości tablicy o więcej, niż...
Zaczynasz wprowadzanie znaków od najstarszych pozycji, nie? Jeśli zaczniesz od 0, to będziesz miał (na starcie) liczba = 0 liczba = 0*2 + '0' - '0' // kody ascii objaśnił Łuk_F czyli liczba się nie zmieni, ciągle będzie wartość 0. Gdy trafisz na pierwszą jedynkę dostaniesz liczba = 0*2 + '1' - '0' czyli w liczbie pojawi się 1. Kolejna jedynka liczba...
Operacje arytmetyczne i logiczne w procesorze wykonuje jednostka arytmetyczno-logiczna (ALU). Generalnie ma dwa wejścia i jedno wyjście (np 32bitowe dla procesora 32b) i współpracuje z rejestrami procesora o takiej szerokości. Dodatkowo ma wejście i wyjście do przerzutnika przeniesienia, przerzutniki flag (informacja o przepełnieniu w ostatniej operacji)...
Działanie suma = suma << 1 to mnożenie przez 2. Dzielenie realizuje się przesuwając w prawo a nie w lewo. Dodatkowo można w ten sposób dzielić tylko przez kolejne potęgi liczby 2, a ponieważ 10 nie jest potęgą 2, więc nie da się dzielić przez 10 poprzez przesunięcie bitowe. Porponuję zrobić dzielenie przez 8 lub przez 16 (przesunięcie o 3 lub...
Poszukaj bibliotek mnożacych 16bitowe liczby. Dodano po 26 TEN PROCEK JEST 8 BITOWY!!!! Dodano po 50 A w ogóle chcesz mnożyć bitowo? Czy matematycznie?
Tylko że jak pomnożę całość przez 10 to już nie zrobię tego na 8 bitach. Czy jak dziele 2 liczby inie dzielą się całkowicie to ustawiany jest jakiś bit lub kilka ? Poza tym nie mam zielonego pojęcia jak wyświetlić pojedynczą cyfrę na wyświetlaczy z jakiejś 3 cyfrowej liczby zapisanej w końcu w postaci hex. Zakres liczb przy podanym przeze mnie wzorze...
Czy nie ma szybszych alglorytmów? Oczywiście, że są. Wykorzystaj algorytm mnożenia i dzielenia pisemnego. Dzięki temu znacznie ograniczysz ilość dodawań czy odejmowań. Na przykład 1234 * 5678 zrobione metodą powyższą to 1234 dodawania (zakładam, że program jest chytry i sprawdza na początek która liczba jest mniejsza i ją bierze jako licznik pętli)....
Do przekalibrowywania wartości analogowych należy używać bloków operacji arytmetycznych. ADD (dodawanie), MUL (mnożenie), DIV (dzielenie), SUB (odejmowanie). Bloki te istnieją w kilku wariantach: B - wartości całkowite 8 bitowe 0..255 lub -127..127, I - wartości całkowite 16 bitowe, D (DI) - wartości całkowite 32 bitowe, R - wartości rzeczywiste 32...
btw nie jestem pewien ale za pomocą przesunięcia bitowego w lewo << na AVR się chyba nie da otrzymać liczby 32 bitowej. Trzeba albo przesuwać w prawo albo inaczej cudować :)
a czy jest to wykonalne, aby zmienić adres IP albo bramy, tak aby należały do tej samej podsieci? (wtedy będę molestował JMDI) Brama to urządzenie (router, komputer), który pośredniczy w łączności pomiędzy daną siecią a resztą świata. Zwykle adres bramy jest pierwszym adresem w sieci. Zakres adresów w sieci jest definiowane przez maskę sieci. Komputer...
Brawo za to, że dzielisz się tym co napisałeś. Ale niestety to przykład jak robić grafikę wolno. Użycie liczb zmiennoprzecinkowych, dzielenia, mnożenia nie wspominając o trygonometrii to podstawowe błędy. Tutaj przykładowo kod rysowania linii bez float, mnożenia i dzielenia. Używane są dane typu int, bo funkcja pracowała na 32 bitowym ARM, ale możesz...
bez urazy, kolego olekewaagata, zanim zaczniesz kogoś pouczać przeczytaj tekst ze zrozumieniem! ;)) Autor wątku miał problem z propagowaniem przeniesienia - moja odpowiedź dotyczy DOKŁADNIE zalecenia, jaką instrukcją uwzględnia się przeniesienie. A podany przeze mnie przykład dotyczy sumowania, z jakim ma problem autor - czyli dokładnie liczby _16bit_...
Zgadzam się że może być przydatne trzymanie liczb skalowanych jakąś potęgą 2 itd... I tak się w praktyce robi gdy obliczenia na float-ach są za wolne (zarówno softowo jak i czasem również hardware-owe operacje na float-ach mogą być za wolne). Zapoznaj się z formatami Q. Idea jest znana, ale w zaskakująco innej dziedzinie: Biznes: liczby ułamkowe stałoprzecinkowe....
Nie umarł i nie umrze, aczkolwiek może zostać "zdegradowany" do pozycji języka, który jest potrzebny tylko do napisania kompilatora. Stanie się tak, jeżeli pojawi się jezyk wysokiego poziomu, a właściwie to kompilator takiego języka, za pomocą którego będzie można uzyskać kod równie wydajny. Chociaż i tak zawsze pozostanie grupa entuzjastów asm. Znajomość...
Stosunkowo szybkim sposobem wyliczenia sekwencji punktów funkcji sinus/cosinus jest całkowanie równania różniczkowego układu drgającego bez tłumienia metodami numerycznymi (np. RK-4, czy Adamsa). x''=-ax przy warunku x(0)=0 ; x'(0)=1 Wyliczenie kolejnego punktu to kilka mnożeń i dodawań. W przypadku 32-bitowej reprezentacji stałoprzecinkowej ta metoda...
mnożenie bitowych liczb mnożenie liczb odejmowanie liczb bitowych
paski ekranie cienkie lampa peugeot duża dawka paliwa
skrzynia schemat skrzynia schemat
Siemens EQ.700 grzałka nie wyłącza się – czujnik NTC, triak, przekaźnik, naprawa Mitsubishi Space Star 1.6 benzyna – ustawienie wskazówki obrotomierza, kalibracja licznika