#include<stdio.h> #include<conio.h> int main() { int a, b, c; printf("podaj liczby do mnozenia: \na= "); scanf ("%d", &a); printf ("b= "); scanf("%d", &b); printf("%d*%d=%d", a,b,a*b); system("PAUSE"); return...
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ą...
a nie mozna w C zadeklarowac zmiennej jako 64 bit? long long zmienna; W asm wykonywana operacja to: A = A + B, bo tak najprościej i najczęściej się stosuje :] Dodajesz po kolei bajty zaczynając od najmniej znaczącego. Pierwsze dodawanie wykonujesz jako ADD, każde następne jako ADC (z przeniesieniem z poprzedniego) Mnozenie, hmm... Wiesz, jak wygląda...
Kiedyś napisałem dla '51 BCD»BIN BIN»BCD MNOŻENIE DZIELENIE z możliwością deklarowania ilości bajtów do konwersji. Może komuś się coś przyda.
Albert - kocia to mądra młoda lady :) Nawet, jeśli Słowację ze Słowenią myli :) Kotek, to w zasadzie teraz nie łapiesz rekurencji jako takiej, czy wzoru na potęgowanie? Bo to jest tak samo, jak ze wzorem na mnożenie: 5*x=x+4*x 4*x=x+3*x 3*x=x+2*x 2*x=x+1*x 1*x=x 2*x=x+x 3*x=x+(x+x) 4*x=x+(x+(x+x)) 5*x=x+(x+(x+(x+x))...
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...
A czego tu nie rozumieć ? Po prostu musisz sobie zrobić osobne procedury albo etykiety dla każdego rodzaju przeliczeń czyli osobną dla Mohm, Kohm ,Ohm . Następnie układasz algorytm np coś takiego. Wybór jednostki wejściowej Mohm Kohm Ohm i teraz wybierasz sobie rodzaj jednostki następnie z klawiatury zczytujesz wybór z menu i teraz musisz mieć wszystkie...
Polecam książkę "Wprowadzenie do cyfrowego przetwarzania sygnałów" Lyons, Richard na podstawie, której powstał poniższy kod. Poniżej kod implementujący filtr FIR. F0 - częstotliwość odcięcia filtru Fs - częstotliwość Nyquista próbkowanego sygnału. Jeśli częstotliwość próbkowania wynosi 1Mhz to częstotliwość Nyquista wynosi 500kHz dolnoprzepustowego...
Bardzo dawno temu, pod koniec lat 80 bawiłem się trochę przebiegami EKG i robiłem na tym FFT. Mimo, że w sumie częstotliwość podstawowa EKG to pojedyncze hz, próbkowanie było 250 albo 500 sps. Co prawda jedynie badałem właściwości układu na symulatorze, ale wyszło, że ówczesny demon szybkości TMS320C10 (chyba wykonywał 5MIPS, tyle że mnożenie stałoprzecinkowe...
A może wypadało by poszukać trochę w googlach jak mnoży się macierze [url=http://www.matematyka.pl/56375.htm]... wynik w googlu oraz [url=http://edu.i-lo.tarnow.pl/inf/utils... opisany algorytm i przykład w C++
Witam. Czy mógłby mi ktoś napisać programik Algorytm Strassena mnożenie macierzy w Visual C++? Byłbym bardzo wdzięczni
Ten algorytm przedstawia prosta metode mozenia ktora czesto byla stosowana w procesorach nie posiadajacych instrukcji mnozenia. wykozystuje sie w nich rotacje bitow i dodawanie. Algorytm jest bardzo prosty w realizacji.
Chyba udało mi się znaleźć algorytm. Wydaje się jednak dziwnie prosty. Ok, działa, bo w zasadzie musi. Liczysz po prostu korelacje próbek z zadanym sinusem i kosinusem, tak z definicji. Ale jednak masz jeszcze dość ciężki obliczeniowo algorytm. Na każdą próbkę liczysz sinus i kosinus i masz dwa mnożenia. Co prawda sinus można wstępnie stablicować....
Witam ! Mam pewien układ do stworzenia... Układ mnozacy 16x16bitów z wyświetlaniem na LEDach. Rozmiar specjalnie tak dobrano żeby nie wykorzystywać ROMu. Dodatkowo nie można używać mikroprocesorów jak i mikrokontrolerów. Dane powinny być wprowadzane za pomocą mikroprzełączników. Myślę, że jako algorytm trzeba by wykorzystać może mnożenie z przeniesieniem...
Dzięki za listing, ale ten algorytm również używa iteracji zamiennie X lub Y. Faktycznie, mnożenie można tu zastąpić przesunięciem w lewo o bit.
Podstawą jest Pełny 1 bitowy sumator (FullAdder): https://obrazki.elektroda.pl/3093507700_... Z niego można zbudować sumator wielobitowy łącząc w szeregu wiele jednostek: https://obrazki.elektroda.pl/5294488100_... W rzeczywistych układach stosuje się inne rozwiązania bo powyższy jest tym wolniejszy im więcej bitów...
Czyli jednak należy przemnażać przez funkcję sin (czy to tabelka, czy liczenie - to już inna rzecz). Chodziło mi o to, dlatego że w metodzie koleracji również jest mnożenie przez sin. Dzięki :)
Witam! Chciałem napisać mnożenie dwubajtowe na procesorze ATmega32. Jest ona oczywiście 8bitowym procesorem. Szukałem różnych algorytmów w Internecie, jednak ich implementacja do dwóch bajtów jest bardzo skomplikowana, jak na początkującego. Ma ktoś może pomysł jak wykonać takie mnożenie w najprostszej postaci? Dziekuję z gory:)
Wiesz, jak wykonuje się mnożenie pod kreską? Ten sam algorytm możesz śmiało zaimplementować w oparciu o tablice mnożąc absolutnie dowolnej wielkości liczby. Najszybciej chyba znajdziesz rozwiązania oparte o assemblera, ale żaden problem przenieść to na język wysokiego poziomu. Coś podobnego (choć oparte o kod BCD) znajdziesz np w [url=http://www.dzyszla.aplus.pl/program...
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)....
Sprzętowo czy programowo? Ile bitów. Ogólnie jest to mnożenie kolejnych liczb przez potęgi dziesięciu.
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. Mam mały problem z projektem. Muszę napisać algorytm równania, a wygląda to tak: wszystkie stałe mają być 8-bitowe i zapisane w kodzie U2, mnożenie wykonać metodą booth, piszę w asemblerze. Teraz pytanie jak pomnożyć np: -1/2 * 3,25. Wszędzie w necie są przykłady jak mnożyć same ułamki bez cześci całkowitych. Proszę o pomoc.
Zostałem uszczęśliwiony pięknym przedmiotem pt. Analiza i Złożoność Obliczeniowa Algorytmów... tylko, że niestety na studiach inżynierskich tego przedmiotu nie miałem ani ja ani moi koledzy z grupy :/ Chętnie więc przyjmę wszelką pomoc w tej kwestii - tzn. jakieś materiały (ale nie na zasadzie pierwsze lepsze znalezione w google) zrozumiałe dla kogoś...
//pełny algorytm crouta #include <iostream> #include <conio.h> #include <stdio.h> #include <stdlib.h> #define N 4 /* Rozmiar macierzy */ /* Macierz współczynników */ double A[N][N] = {{4.0, 0.0, 0.0, -3.0}, {2.0, 6.0, 0.0, 0.0}, {0.0, 0.0, -1.0, 3.0}, {5.0, 0.0, -2.0, 1.0}};...
Tu masz moje biblioteki w której jest mnożenie i dzielenie o deklarowanej ilości bajtów (międzyinnymi).
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 .
https://obrazki.elektroda.pl/3223563200_... Zwolennicy technologii kwantowej wierzą, że zmieni ona świat. Inni pozostają jednak sceptyczni, podobnie jak w przypadku technologii takich jak energia syntezy jądrowej. Przemawiając na forum programistów kwantowych, inżynier IBMa, Jan-Rainer Lahmann, prześledził historię obliczeń kwantowych...
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 :)
Ja bym zastosował tzw metodę list wektorowych. Macierze rzadkie powinny mieć BARDZO dużo zerowych wektorów. A potem już z górki. Co do rozproszenia tego procesu, to bym kolejnym dostępnym maszynom zlecał kolejno tworzenie wektorów, a potem już tylko sprytny algorytm uwzględniający zera tym razem kolejne maszyny obliczają np kolejne kolumny.
Jeżeli to ma być tylko mnożenie przez 5 to można to zrobić tak: liczba 5 to binarnie 0101, podajesz na sumator na jedno wejście liczbę w postaci podstawowej, a na drugie wejście tą samą liczbę przesuniętą o dwa bity, a więc realizujesz operację liczba + 4 * liczba. Jest tylko jeden problem. Ten algorytm zadziała poprawnie tylko na kodzie binarnym. Pozdrawiam...
J Zauważ natomiast, że nie miałbyś 3/4 tych problemów, gdybyś użył małego Cortexa za 3 złote - ma większą pamięć RAM i kilkanaście razy szybciej od AVR dodaje liczby 32-bitowe oraz klkaset razy razy szybciej je mnoży. Myślę, że wyciągasz błędne wnioski - problemem nie jest wolny procesor, lecz zły algorytm obliczania wyniku. Bez poprawy algorytmu zmiana...
Algorytm jest dość prosty, wygląda jak mnożenie pisemne. Potrzebujesz dwóch pętli, zewnętrzna wybiera kolejne cyfry mnożnika, a wewnętrzna mnożnej. Kolejne cyfry wyniku (ma nie więcej cyfr niż suma długości mnożnej i mnożnika) wyznaczasz ze wzoru: x=a[i]*b[j]+przeniesienie jeśli x>9 to { przeniesienie=x/10 x=x mod 10} potem oczywiscie musisz sumować...
Wg pewnej książki klasyczne mnożenie dwóch liczb po milionie cyfr na maszynie o dzielności 10MIPS (mało ale niech tam) zajmie 24 godziny! Istnieją inne algorytmy, wg. tego samego źródła algorytm Karatsuby 10 minut, FFT 10 sekund (doba to 86 400 sekund) na tej maszynie pomnożenie miliarda cyfr przez miliard zajmie tylko 2700 lat (FFT 3 miesiące)
Wielkie dzięki! :D Już biorę się za programowanie, jak coś będzie "niechodziło" to jeszcze zapytam, ok? Znasz może jakieś "triki" przyspieszające program? Typu mnożenie x*2 to to samo co x<<2. Reszta z dzielenia przez x%256 to x&0xFF. Jest jeszcz coś usprawniające wypisywanie na ekran?
https://obrazki.elektroda.pl/7492548300_... Ozon znany jest ludzkości już od 1840 roku, kiedy to Christian Friedrich Schönbein odkrył go w swoim laboratorium. Dziś ozon uznawany jest jako jeden z najskuteczniejszych środków dezynfekcyjnych. Działanie bakteriobójcze ozonu jest około 50 razy skuteczniejsze i 3000 razy szybsze niż chloru. Nie...
jak zrobić mnożenie o np. 1,5 Dodajesz do siebie 3 razy i przesuwasz w prawo 1 bit. Takie tam sztuczki, chyba że zaprojektujesz sobie algorytm który będzie to robił z automatu. Na pewno są też gotowce w sieci, wtedy nie trzeba odkrywać Ameryki.
IMHO cały algorytm multipleksowania i sposób przechowywania danych są do kitu. Masz 256 diod, dlaczego ich stanu nie przechowujesz w bitach, tylko całych bajtach? Gdybyś miał to na bitach, to żadne magiczne operacje przesunięć bitowych nie byłyby potrzebne, a cała obsługa multipleksowania byłaby króciutka. Ściągnij przykłady do mojej książki, tam masz...
W AVRStudio puściłem FFT 128 gołe (czyli bez okna i liczenia modułów), ATMega czyli z mnożarką, wyszło 270 tys cykli, czyli przy 16 MHz 0,033 sekundy algorytm raczej sprawdzony, ale badam dalej. CodeVision C, prawie 900 bajtow kodu w tym 320 bajtów sinusa. Ach, mnożenie 16*16 wykonuje funkcyjka którą zaczerpnąłem z noty aplikacyjnej Atmela
algorytm powstaje, w planie będzie to wyglądało tak że na podstawie bazy danych skrypt w php ma wygenerować kod w VHDLu najprawdopodobniej, który będzie wgrywany do FPGA - dużo warunków na podstawie danych wejsciowych (tablice jedno i wielowymiarowe) + mnożenie realów + dodawanie PS. swoją drogą będe miał najprawdopodobniej kilka tematów innych opartych...
http://obrazki.elektroda.pl/8660171200_1... Celem projektu było zbudowanie odtwarzacza MP3/WAV, używając jedynie układu FPGA, pamięci RAM i przetwornika stereo DAC. Układ wykorzystuje 32-bitowe jądro procesora programowego pracujące przy taktowaniu poniżej 60MHz, które odpowiada za dekodowanie MP3 bez wsparcia sprzętowego - poza wykorzystaniem...
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...
Jasne, wiadomo że kod wynikowy po kompilacji w Bascomie nie będzie optymalny. Akurat ten program do złożonego sterownika CO pisałem w Bascomie bo nie zależało mi na szybkości i wielkości, tylko na tym żeby działał i by szybko go napisać. Przykład ten zrobiłem w celu edukacyjnym. Dzięki za rozwinięcie mnożenia x*86 jako ciąg przesuwań. Atmega jednak...
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,...
Masz rację, że kiepsko znam asm - dopiero zaczynam a powodem jest taki kod wygenerowany przez kompilator: 116 i = 5; 00001204: ldr r3,[pc,#120] 00001206: movs r0,#204 00001208: lsls r0,r0,#2 0000120a: adds r0,r0,r7 0000120c: adds r3,r0,r3 0000120e: movs r2,#5 00001210: strh r2,[r3,#0] 117 asm ("mul...
Jesli chodzi o optymalizacje to radziłbym unikać takich rzeczy: j =2; while (licznik*j<=granica2) //wszystkie jej wielokrotnosci skreslamy { lista[licznik*j]=1; //zaznaczamy ze nie sa pierwsze ++j; } Po co 2 razy liczyć licznik*j . Mnożenie jest jedną z najbardziej czasichłonnych operacji dla procesora (bodajrze ok. 200...
Witam, Wskaźniki w C... wskaźniki, w języku programowania wysokiego poziomu C wymyślonego przez genialnego Nicklausa Wirth'a bywają różne, jedne wyznaczą rozmiary poprzeczne, inne podłużne. Użyteczność użycia wskaźników jest wieloraka, wszystko zależy od postawionego przy nich znaka. Bowiem sam ów wskaźnik bez swego powiedzmy pana, jest nic nie wart,...
Remeknapr: mimo, iż mnożenie wygląda na poprawne, to jest ono błędne.. mnożenie dword*dword da wynik, który może zajmować 2*dword, więc pojawiają się przeniesienia. W najprostrzym przypadku mnoży się dword*dword i uzyskany wynik 2*dword dodaje się w odpowiednie miejsce do wyniku, przy czym trzeba kontrolować przepełnienia do sąsiednich pól. Prostrzy...
Zdecydowanie lepiej zrobi jak pomyśli samodzielnie bo to co napisałeś nie działa poprawnie , poza tym ma sporo ograniczeń . Napisałeś to nie biorąc pod uwagę budowy mikrokontrolera i najgorzej jak można było . Czym mniejsze zmienne tym szybciej działa program , jak są 8 bitowe to super bo każde dodawanie , odejmowanie mnożenie to 1clk . Tu nie ma sensu...
Nie do końca. po tym 2 punktowym DFT następuje synteza widma. Czyli dodawanie i mnożenie przez sinusoidy. W dziedzinie czasu byłoby to dodawanie dwóch sygnałów, z czego jeden jest przesunięty. To przesunięcie to jest splot tego sygnału z funkcją delta, co w dziedzinie częstotliwości odpowiada mnożeniu widma przez sinusoidę. Dlatego na pierwszy rzut...
mnożenie kolumn asembler mnożenie tabliczka mnożenie
drukarka laserowa papier zawieszenie tylne laguna serwisant elektronik
samsung ue48h6800 samsung ue48h6800
Iveco Stralis EBS 2 – zasilanie żółtego przewodu powietrznego i ciśnienie przy hamulcach awaryjnych Usuwanie monitu o konserwacji Vaillant Recovair 801 - reset nie działa