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ś...
Witam, wlacze dalej z 8051 jako licznikiem kilometrów. Ktos doradzil mi abym poszukal procedur ALU ktore wykonuja obliczenia na 16 bitowej liczbie w 2 rejestrach. Znalazlem dodawanie odejmowanie konwersje etc. Nie znalazlem nigdzie mnozenia dzielenia itd. Moze zaczne od problemu, napisalem program ktory w ciagu sekundy zlicza impulsy na T0(P3.4) w ciagu...
zadeklaruj w funkcji zmienne jako long...
Lecz w który miejscu mnożę dwie liczby 16 bitowe podczas zapisywania do tablicy? mnożę 8 bitowe b i 256 ( 8bitów ) Ty to rozumiesz. Ja to rozumiem. Kompilator tego NIE rozumie. Poza tym dziwny ten zapis: [syntax=c]b=0b&00011111[/syntax] Ani średnika na końcu ani sensu w środku.
Jest źle. Największe liczby 3-bitowe to 111b = 7d 7×7=49 49d = 110001b Jest to liczba 6-bitowa, a na rysunku jest 7 bitów wyjściowych. Nie mogę wykluczyć, że siódmy bit jest zawsze 0, ale gdyby tak było, należałoby wyeliminować to wyjście. Laborkę miałem 40 lat temu, więc więcej nie napiszę. Na dziś zamiast bramek dałbym procesor PIC 1 szt. i program...
A jesli chcesz uzyskac jakas sensowna pomoc to napisz dokladniej o co Ci chodzi a nie licz na jasnowidzenie forumowiczow :) Skad te liczby? Jak je wprowadzac? Co dalej zrobic z wynikiem? Do czego to urzadzenie? Czy moze rozwiazaniem moze byc 6-pinowy mikrokontroler? BF
Jak na tym układzie zrobić taki mnożnik? Jakich funkcji użyć? Co z czym i dlaczego tak Najpierw próbowałam to zrobić samodzielnie dając na wejścia sterujące 1011 i M=1 które odpowiadają funkcji AND , ale wtedy wymnażają się poszczególne bity a nie całość, kombinowałam jeszcze z przenoszeniem, ale również nie skutecznie, skończyły mi się pomysły jak...
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
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...
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,...
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?
Witam, Za zadanie dostałem zaprojektować układ mnożący 2 liczby 4 bitowe. Najlepiej jakby układ zrobiony był na sumatorach 4 bitowych i rejestrach przesuwnych w lewo i prawo. Pozdrawiam i proszę o pomoc.
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...
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?
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...
Czy ktos wie jak zrealizowac podstawowe funkcje arytmetyczne ( dodawanie ,odejmowanie, dzielenie mnożenie) na liczbach 16- bitowych w procsorze 99c51.
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ą).
nikt nie liczy alpha blendingu tylko mnożył 3 liczby 8 bitowe.
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...
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 ?
No i właśnie o to mi chodziło gdy pisałem żebyś o to nie pytał ;) Bo tak czułem że nie będziesz umiał tego wyświetlić ;) Wynik niestety jest 24-bitowy więc nie może być w dwóch adresach. Ma być w trzech. To takie trochę tłumaczenie jak chłopu na miedzy, bo to niby jedna liczba i ma jeden adres, ale chodzi o to że ma 3B i już. Więc jako 16-to bitową...
(...)Dlaczego w takim razie stała z większą liczbą 100000 jest obliczana prawidłowo a 10000 tylko z wymuszeniem longa?(...) 100000 jest od razu traktowane jako „long“ (32 bity), więc i mnożenie 8*100000 wykonywane jest jako 32-bitowe, z prawidłowym wynikiem. Natomiast w działaniu (8*10000) preprocesor mnoży dwie stałe 16-bitowe, traktując...
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.
Witam. Gdzie znajdę gotowe procedury w asemblerze dla pic 16f84 np. mnożenie,dzielenie liczb 32-bitowych itp.
Namoje szczęście mnożenie ma być przez liczby całkowite Ale mnożenie przez liczby całkowite też będzie z błędem. Nie podaję częstotliwości i innych szczegółów- na tym etapie jest to nie istotne. To akurat jest bardzo istotne. Do wysokich częstotliwości trzeba inaczej podejść. Podaj chociaż bardzo przybliżony zakres. I powiedz czy wymagana jest stuprocentowa...
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...
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)...
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
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ś;...
Czy dało by się zrobić schemat do komparatora zbudowanego na sumatorach '83? Komparator 4 bitowy (większe analogicznie). Suma liczby A i zanegowanej liczby A daje na wyjściu same jedynki, co daje się zdekodować bramką AND (liczby A=B). W przypadku gdy liczba niezanegowana jest większa od zanegowanej, wychodzimy poza zakres i generowany jest bit przeniesienia...
Mam taki problem z mnożenie dwóch liczb 32-bitowych, cały czas otrzymuję nieprawidłowy wynik. np. [syntax=c]uint32_t a = 15470591; uint32_t b = 512; uint64_t c; c = a * b; // otrzymuję: c = 3625975296 // powinno być: c = 7920942592[/syntax] Da się jakoś ten problem rozwiązać ?
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...
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?
Szkoda, że nawet na próbę trzeba się rejestrować, bo chętnie bym sprawdził, czy wersja 5 już umie poprawnie przeliczać dec na hex. Co jakiś czas pytam chata GPT i copilota "What ASCII characters are equivallent of four character code 1229215826?" i zawsze dostaję inne wyniki; raz jak pociągnąłem temat to bot upierał się, że wykonał kod (poprawny) w...
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?.
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...
Skoro poniższy kod, działa wg Twoich oczekiwań, to napisz może jeszcze proszę, co to znaczy, że "wynik jest dobry" i w jakim zakresie zmiennych adcresult32 oraz a .[syntax=c]int32_t adcresult32; uint32_t a; adcresult32 = (int64_t)((int64_t)adcresult32*a)>>16;[/... i dzielisz liczby 64-bitowe, a wynik przypisujesz do liczby 32-bitowej.
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...
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?
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...
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...
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, proszę o pomoc, mam do wkonania nastepujące zadanie: napisać program wykorzystując assembler procesora z80, który będzie mnożył 2 liczby 8-bitowe, wykorzystując stos do przechowywania. Mnożną można umieścić w rejestrze A, natomiast mnożnik w rejestrze B, (wynik w HL). Byłby ktoś w stanie napisać taki programik?? pozdro... rrally(at)interia.pl...
Tak myślałem, że należy cały port zapisać do jednej zmiennej, tylko nie byłem pewny czy po zapisaniu do zmiennej liczby binarnej mogę korzystać z niej jako dziesiętna. Jeszcze pytanko z tym mnożeniem, jeżeli po pomnożeniu wartość liczby się nie zmieni, to po co ją w ogóle mnożymy? :D Chyba nie do końca dokładnie przeczytałeś posty wyżej. McMonster...
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ć :)
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...
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...
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)....
Witam poszukuje procedury mnożenia liczb 16 bitowych na 8051. Czy ktos może mi pomóc??
Chodzi o pomnożenie próbki przez liczbę x z zakresu 0-255 i potem przesunięcie o 8 bitów w prawo, żeby uzyskać próbkę o współczynniku x/255, tak? Dokładnie. Mnożenie ma niewielki narzut (procesor ma instrukcję MUL), a dzielenie przez 256 to po prostu obcięcie najmniej znaczącego bajtu. Stałą? Przecież volume_coefficient to zmienna. Owszem, ale nie...
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...
Mnoży się starszy bajt * 256 i dodaje się młodszy !
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
Ilu bitowa ma być ta liczba? Ogólnie takie coś można wykonać w następujący sposób: mnożysz liczbę przez dwa (czyli przesuwasz w lewo na rejestrze) i na na wyjściu takiego "przesuwnika" dodajesz liczbę wejściową.
Mnożenie przez 7 to inaczej A + 2A + 4A czyli na pierwszy sumator jedno wejście podajesz liczbę A a na drugie liczbę A przesuniętą o jeden bit (mnożenie przez 2) i na wyjsciu masz 3A. Nastepnie wynik podajesz na kolejny sumator (pierwsze wejście) i liczbę A przesuniętą o dwa bity (mnożenie przez 4) na drugie wejście i na wyjściu masz 7A. A mnożenie...
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.
No to zrób akumulator (sumator+rejestr) 32 bitowy. Na wejściu daj rejestr przesuwający 32 bitowy. Wpisujesz do niego liczbę A, a potem zależnie od kolejnych bitów liczby B dodajesz przesuniętą w lewo liczbę A do wyniku.
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...
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.
Witam, mam problem. Próbuję zaprojektować układ synchroniczny, który mnoży dowolną liczbę binarną przez liczbę 3. Wejście ma być podawane z rejestru nr 1, a wynik zapisywany do rejestru nr 2 (rejestry 8-bitowe jednokierunkowe). Wiem jedynie, że liczbę muszę rozbić na x << 1 + x, ale nie do końca wiem, jak to wrzucić na schemat układu na kartce....
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...
[url=http://www.elektroda.pl/rtvforum/to... umieściłem swoje procedury bin na bcd, bcd na bin, mnożenie, dzielenie z możliwością deklarowania ilości bajtów do obliczeń.
Przy większych wartościach nie ma problemu, to L, to nie do tego jest. Literki służą do wymuszenia typu przy pomocy którego zostanie zapisana wartość, a nie "mówienia" kompilatorowi do jakiego typu ma właśnie odczytaną wartość przypisać (przypisuje automatycznie do int i "pojemniejszych"). Przydaje się, jeżeli operacja ma być wykonana na typie o innej...
Dobre podręczniki do cyfrówki pokazują schematy z podsawowych bramek logicznych i uzyskuje się sumator np 8 bitowy. W każdym razie rzeczywiście to działa w jednym takcie zegara, a nie w ośmiu czy szesnastu. To trudno pisać na forum, nikt ci nie będzie edytował schematów itd... poszukaj wiedzy książkowej Mnożenie jest bardziej skomplikowaną opowieścią,...
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...
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....
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...
Napisz jaką potrzebujesz dokładność, jeśli niewielką to najlepiej użyć gotowej tablicy. Jeśli dużej to trzeba rozłożyć funkcję pierwiatkowania np. na szereg Taylora i wtedy obliczać kolejne przybliżenia, ale to wymaga napisania procedur operacji zmiennoprzecinkowych (głownie mnożenie i dodawanie zmiennoprzecinkowe).
AND mnoży liczby z wejścia. czterowejściowa pokaże 1 jeżeli 1 jest na wszystkich wejściach. Masz dwuwejściowe i trzywejściową. Na szybko z dwóch dwuwejściowych pomnożysz 2 pary sygnałów. Oba wyniki pomnożysz w kolejnej i gdziekolwiek pojawi się zero, to bramka to zasygnalizuje. Prościej do dwuwejściowej NAND dodać inwerter i podłączyć do trzywejściowej...
Witam, na przyszły tydzień mam przygotować kilka projektów z układów iteracyjnych. Całkiem przyjemne rzeczy...gdyby nie dwa podpunkty; mam zaprojektować układy: mnożący i dzielący 8 bitową liczbę binarną (zapewne w systemie dwójkowym) przez 5. Układ ma składać się z 8 bloków, o 1 wejściu, 1 wyjściu i max 3 przeniesieniach każdy. W każdym bloku mam do...
Witajcie, Dużo szukałem, ale nie mogłem znaleźć Działającego programu do kalkulatora, który dodaje, odejmuje, mnoży i dzieli ( Może też pierwiastkować ) maksymalnie 3 liczby 16-sto bitowe i wynik pokazuje na wyświetlaczy LCD. Jak by ktoś posiadał to był bym wdzięczny za wstawienie.
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.
na początek wystarczy tak if ( (a = j+k*10+l*100)!=0){ if ((i+e*10+f*100)>=a)... } } dalej można kombinować z upraszczaniem kolejnych operacji: j+k*10+l*100 to jak sądzę liczba dziesiętna składana z cyfr. Więc warunek ( j+k*10+l*100)!=0) mozna zastąpić ( j || k || l) pomija to...
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...
:) 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 :/
"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.
Jednym z ważniejszych parametrów przetwornika D/A - i od tego zwykle zależy jego cena - jest błąd przetwarzania; zwykle jest mierzony w działkach skali, np. 1/2 działki skali; rozróżnia się dwa rodzaje błędów: największe odchylenie, i największą różnicę odchyleń między sąsiednimi działkami (błąd różnicowy); jeśli masz błąd różnicowy 1/4 działki, i połączysz...
Witam serdecznie, podczas pisania programu na PLC Fatek'a napotkałem pewien problem. Chciałbym aby na podstawie czasu pracy palnika olejowego oszacować bieżące zużycie paliwa wiedząc, iż dysza która jest aktualnie zamontowana spala 0.4 galona na godzinę (1.51 litra). No i tutaj pojawia się problem w jaki sposób to obliczyć? Programując plc nie mogę...
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....
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 :)
... 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....
Przesuwa sie w prawo bo na ostatnim miejscu nic już sie nie zmieni i dodaje sie wprost wartość jak sie okręci rejestrem określona ilość razy to i tak wyjdzie dokładnie to co ma wyjść może to troszkę bez logiki ale działa jak powinno. A wynika to z tego że rejestr z wynikiem jest 16 bitowy składa sie z 2 rejestrów. Jak kolega by chciał przesunąć liczbę...
przy każdym programie siedzę z kilkoma kartkami gęsto zapisanego papieru-fakt jest niepodważalny, że to najlepsza metoda, dopiero potem komputer. W asemblerze mnożyć x2 czy dzielić /2 i ich wielokrotności nawet jakby to były liczby 16 czy 32 bitowe - to da się zrobić ale jak mam liczbę 2,8 i to jeszcze na 6-tym miejscu po przecinku to się zaczynają...
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...
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...
http://obrazki.elektroda.pl/4339422600_1... To moja trzecia konstrukcja na FPGA ;) pierwszy był trywialny zegarek na kilku licznikach, a potem prosty kalkulatorek dodający dwie liczby. Tak więc proszę o konstruktywną krytykę i porady, co by tu można jeszcze ulepszyć. FPGA ciekawi mnie już od jakiegoś czasu, ze względu na to, że można...
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ę...
utoa() pracuje z liczbami 16-bitowymi. 'odczytane' jest liczbą 32-bitową, więc trzeba użyć ultoa(). Próbowałem przez ultoa, ale wtedy jest jeszcze gorzej bo końcowa wartość wynosi 357887394. I właśnie męczę się z tym prawie od godziny na różne sposoby i nic... Używam 32-bitowej zmiennej bo muszę mnożyć przez 10, więc wyszedłbym poza zakres. Tymczasem...
Mnóstwo instrukcji assemblera nie może być wykonanych w jednym cyklu zegara... w sumie wszystkie wykonywane są w tej samej liczbie i zależy ona od PIPELINE'u... pobranie instrukcji, dekodowanie, wykonanie, zapis do pamieci, akumulacja wyniku. To jest taki najprostszy pipeline i umożliwia on właśnie wykonywanie instrukcji w "jednym" cyklu zegara.......
DIV AB “DIV AB” a) ang. „divide” – podziel b) 8−bitowa liczba bez znaku, znajdująca się w akumulatorze jest dzielona przez 8−bito− wą liczbę z rejestru B. Cześć całkowita ilora− zu wpisywana jest do akumulatora, a reszta z dzielenia do rejestru B. W przypadku gdy dzielnik jest równy 0 (B=0) to po...
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...
Z tym mnożeniem przez 0 i 1 dla 8 bitów to wyjdzie porażka bo albo świeci albo nie świeci. Nie chodzi o mnożenie razy 0 lub 1, bo wynik przecież jest oczywisty. Tylko o mnożenie razy liczbę z przedziału 0 do 1, żeby uniknąć typu float to robi się to wykorzystując arytmetykę stałopozycyjną lub tymczasowe promowanie do typu szerszego - np. liczbę z zakresu...
nie do konca bo dana jest 16 bitowa. Miałem na myśli liczbę 8 bitową. Nie można iść na gotowe. Przed chwila napisałem, że nie chcę iść na gotowe, Wystarczy mi, jeśli ktoś przedstawi mi wskazówki jak rozwiązać problem.
Jeśli na wejściu ma być 1Hz, to do przełączania AM/PM trzeba to podzielić przez 86400, i ostatni podział musi być przez 2, żeby czasy '0' i '1' były równe. 4059 może zliczać do 21327, więc licznik binarny co najmniej 3-bitowy. 4059 może sterować TTL, ale jeśli wygodnie jest zastosować np. zasilanie 12V, to wypada użyć licznika binarnego z serii CMOS...
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”...
mam pytanie do tego algorytmu, bo nie moge jednej rzeczy dla niego wymyśleć... co zobić, żeby prawidłowo robił bin2bcd ale liczby 16 bitowej dla której 4 lub 8 ostatnich bitów jest traktowane jako liczby po przecinku... przecież nie bede tego robić tak jak jest a potem dzielić tej liczby bcd przez 16 albo 256, bo wtedy traci to sens, żeby nie dzielić...
Pfemek- czy chodziło Ci o linie: Impulsy_drogi_1 = 256 * Przep : Przep = 0 ??? To znaczy z czym mi chodziło o co? :) Ta linia którą przytoczyłeś dotyczy zliczania impulsów z czujnika prędkości (drogi) wtedy gdy mikrokontroler zajęty jest czym innym (np. czeka 3s na koniec wyświetlenia jakiejś informacji) po to aby nie gubić impulsów. Dlatego też gdy...
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...
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...
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).
mnożenie liczba bitowy mnożenie liczba sumator liczba bitowy
wymiana centrali alarmowej renault naprawiać generator funkcyjny aplikacja
sonopan instrukcja kamera fortec
Opis pinów silnika klimatyzacji PSC, BLDC, 3-fazowego – Daikin, LG, Mitsubishi, Samsung Daewoo Matiz - Silnik odpala, ale gaśnie i gubi paliwo