Witam, mam prośbę do kogoś kto zajmuje się assemblerem o wyjaśnienie mi pewnego problemu. A mianowicie muszę wykonać dzielenie binarne, znalazłam w książce w sumie to co mnie interesuje lecz nie bardzo rozumiem dlaczego to działa. W załączniku znajduje się ten fragment wraz z kodem którego nie rozumiem. 1. Który bajt jest bardziej znaczący a który mniej?...
Podprogramy pobrane zostały ze strony Strona nieraz przewijała sie na forum. Po analizie i sprawdzeniu na symulatorze uważam że podprogramy dzielenia binarnego we wszystkich odmianach działają nieprawidłowo, dla chrakterystycznych wartości operandów. Przygotowałem materiał w załaczniku do sprawdzenia przez innych chętnych do podjęcia tematu. W przypadku...
Witam, mam napisać deterministyczną maszynę Turinga, która policzy mi resztę z dzielenia liczb binarnych. Jest ktoś w stanie pomóc mi przy tam zadaniu? pozdrawiam
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.
dzieki za ZIP-a i RAR-a znowu troche wiadomosci sie zdobyło.zastanawiam sie nad sposobem H-DOC-a.ciekawy sposób- daje w końcu dla powiedzmy 1023bitów liczbe 1500 (bład o 1 ale to sie da poprawić)zapisana binarnie, czyli 101 1101 1100 (5 13 i 12)tylko jak to przetworzyć na BCD, bawiłem sie z binarnych na decymalne i hex-y oraz odwrotnie a o BCD znam...
Witam Nie moge doszukać się funkcji konwertującej dane decymalne na binarne w visual basic'u. Zamiana na HEX i OCT jest bez problemowa bo są to funkcje wbudowane w VB na stałe. Czyżby nie było zamiany w prosty sposób na binarne, np. jak w excelu dec2bin? Czy trzeba budować funkcję dzielenia przez 2 ?
Chciałbym odwrócić wartości tablicy, mianowicie program ma obliczać liczby dziesiętne na liczby binarne. Więc dziele każdą liczbę dziesiętną przez dwa i resztę z jej dzielenia z % 2, zapisuje jako element tablicy. Jednakże wynik binarny czyta się od drugiej strony, wiec chciałbym by program wyświetlał wartosci odwrotnie np tab Dodano po 54 #include<stdio.h>...
Witam!! Potrzebne mi sa jakies wiadomosci na temat funkcji liczacych kody binarne. Jezeli ktos posiada moze gotowy program takiego kalkulatora (dodawanie odejmowanie dzielenie mnozenie pierwiastkowanie) to bardzo prosze o pomoc. Z góry dziekuje i pozdrawiam
No już ci napisałem - arytmetyka stałopozycyjna. 21/2=10r1. 1*10/2=5 - masz pierwszą cyfrę po przecinku. Możesz zrobić r*100 albo 1000. Jak z tego wyjdzie reszta to mnożysz dalej i dzielisz otrzymując kolejne miejsca dziesiętne lub binarne.
Najprościej to taki układ potęgujący na jednym scalaku możesz zrobić na jednej pamięci EPROM. Możesz wtedy zrobić potęgowanie liczb więcej niż 4 bitowych. Taka pamięć kosztuje kilka złotych. Jeżeli weźmiesz zapis w kolejnych bajtach na zasadzie młodszy starszy to możesz zapisać np. tak: w adresach od 0 do 255 zapisujesz resztę z dzielenia kwadratu liczby...
na kartce sie podana liczbe dzieli przez 2 i sprawdza czy jest reszta z dzielenia jezeli tak to zapisujemy 1 jezeli nie ma zapisujemy 0 i czytamy od dolu nasza liczbe binarna ! ehis : dzieki za linka ale ogolnie to nie mam pojecia co tam jest przegladalem juz dzisiaj tego posta ... nie zabardzo chce mi sie wnikac w zawartosc tego algorytmu jest troche...
Nie dziel 1/3, tylko 100/3 albo 1000/3 (oczywiście w systemie binarnym przesunięcie musi być w oparciu o właśnie system binarny dokonane)... Dokonaj takiej normalizacji, aby otrzymać liczbę całkowitą, w której tylko wystarczy przesunąć przecinek. Tak więc przed przystąpieniem do dzielenia zmaksymalizuj mantysę dzielnej i zminimalizuj dzielnika, dbając...
[url=]Algorytm 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 będzie większa (lub równa) od dzielnika. Wykonaj...
Witam, kto mi to przełoży na chłopski rozum, bo zgłupiałem! przesunąć liczbę w postaci binarnej o jeden bit w prawo (podzielić przez 2) wykonać operację XOR na odpowiednich bitach liczby i wyniku dzielenia liczby przez 2 Odwrotnie potrafię to zrobić, ale z binarnego na Greya - nie kumam? bo np. Przykład przeliczenia: Krok | Kod Graya | XOR | Kod naturalny...
Trzeba zsyntezować układ arytmetyczny do obliczania reszty z dzielenia, albo wziąć sobie gotowy układ z biblioteki (np. w pakiecie ISE jest narzędzie coregen do generacji różnych bloków funkcjonalnych). Poza tym dla różnych systemów liczbowych istnieją różne wartości modulo, dla których obliczanie reszty z dzielenia może być uproszczone, m.in. wielokrotności...
Ok spróbujmy... Wiesz zapewne że kod binarny składa się z "0" i "1". Wiec tak zapisz sobie pokolei: W dwojkowym masz możliwość zapisania tylko liczby 2 i jej potęgi (od 0 do n). W pierszym wierszu masz rozpisane pokolei potęgi liczby dwa (przeliczone na system dziesiętny) W drugim wierszu mas to samo w postaci 2^n w 3 wierszu masz zapisane która potęga...
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ą...
Witam, Napisanie programiku który konwertuje liczbę jedno- bajtową binarna na BCD jest dość proste i zajmuje to nie wiele cykli procesora. Niestety kiedy usiadłem do napisania konwersji 16 bitowej liczby, już na samym wstępie zauważyłem, że prawdopodobnie procesor wykonać bedzie musiał tyle operacji, że spowolni to prace całego urządzenia i nawet użytkownik...
Niestety problem następny dane przekazuje ,wszystko działa ale wynik niezgodny z oczekiwaniami ,licząc kalkulatorem i funkcjami wbudowanymi wyniki się różnią .Przypuszczam ,że problem tkwi w sposobie zamiany przez excel tekstu na binarne ,lub jeszcze inny problem . W docelowym programie przy składniku mp po podświetleniu wskazuje 1,#INF czyli infinity...
Witam, Na wejściu mamy 40-bitową liczbę binarną, potrzebujemy ją skonwertować na zapis przy podstawie 10. Chcemy tego dokonać bez angażowania 'dużej biblioteki'. Najlepiej jest tego dokonać metodą kompensacyjną. [syntax=C] /* niezbędne deklaracje np. uint8_t arr[5]; itp. Także kolejność lsb..msb bardziej pożądana, ale nie niezbędna */ /* Tablica użyta...
Ad 1. 1. Dzielisz prze 2, resztę z dzielenia zapisujesz jako kolejny bit od końca. 2. Powtarzasz dopóki liczba nie osiągnie wartości zerowej. Ad 2. 1. kod binarny 1111 1111 to w postaci dziesiętnej - 255 2. więc 5V dzielisz przez 255 wychodzi: 0,01960784313725490196078431372549 3. Każdą wartość którą trzeba skonwertować dzielisz przez ta liczbę i zaokrąglasz...
Na forum bylo juz o dzieleniu liczby 6-sio bajtowej przez 2-wu bajtową ElGregor zamieścił skrót do pdf'a, gdzie większość podst. działań jest zaimplementowana.
A jak mozna podzielic liczbe 12345/65536 = 0,18765.... mnie by tylko interesowlo np 0,187?? Bo jak dam dzielenie binarne tych liczn to wyjdzie mi zero!!
Mnie się także wydaje że należy najpierw zamienić te "cyfry" na kod normalny tzn.binarny bez uzupełnień i po tym dzielić (zamiana może wyglądać tak że po prostu dodajemy kolejne wartości poszczególnych cyfr z uwzględnieniem ich wag czyli np.12753 BCD to 3+50+700+2000+10000) Do testowania tego typu bibliotek polecam program ADSIM jest on co prawda do...
Ogólnie to możesz zrobić tak, że puszczasz pętlę, która liczbę dziesiętną dzieli przez 2 i resztę zapisuje jako kolejne bity. Np. Mamy liczbę 11, dzielimy przez 2, otrzymujemy 5 i resztę 1, znów dzielimy przez 2, otrzymujemy 2 i resztę 1, dzielimy przez 2 i mamy 1 i resztę 0, znów dzielimy przez 2 i mamy 0, resztę 1. Stąd 11dec=1011bin (zapisujemy kolejne...
Witam, Niech żyje Dr. hab. Mariusz Barski™, a ma może ktoś pomysł jak zrobić dzielnik sekwencji wejściowej, właśnie przez 5 tylko na przerzutnikach JK ?? Dlaczego ni z gruszki, ni z pietruszki mieszasz w to jakiegoś doktora? Ja nie widzę żadnego problemu by zrealizować licznik wedle żądanego kodu (niekoniecznie naturalnego - binarnego) liczącego...
Ok , postaram się to wyjaśnić ;) Sub Modyfikuj_polbajt(byval Polbajt As Byte , Byval Zmien As Byte) 'Polbajt , to pozycja kursora na LCD (1-16) 'Zmien , to wartość 1 gdy zwiększamy o 1 , lub 255 gdy zmniejszamy o 1 Local Hb As Byte 'zmienna pomocnicza dla starszych(4-7) 4-bitów z bajtu Local Lb As Byte 'zmienna pomocnicza dla...
Chciałem sie spytać czy sposób, który używam jest prawidłowy? np. liczbę 23 przeliczam tak: rozpisuje sobie liczby pomnożone przez dwa: 1 2 4 8 16 32 64 128 256 itd następnie podstawiam zero gdy liczba jest większa od 23 a jeden gdy mniejsza: ... 16 1 32 0 później do 16 dodaje następna liczbę czyli 8. Jeśli jest powyżej 26 pisze zero itd. Wychodzi mi...
Potrzebujesz do tego celu trzy liczniki 7490. Należy je połączyć w szereg i zdekodować stan 161 i wyjście tego sygnału podać na wejścia zerujące liczników (zwróć uwagę na poziom aktywny wejść zerujących). Ten sam sygnał wykorzystaj też jako wyjście twojego układu. Zwróć tylko uwagę, że przy takim połączeniu licznik nie liczy w naturalnym kodzie binarnym....
Cześć, Dzięki za cenne podpowiedzi. Czyli nie będe tego robił na układach TTL (w sumie to by może i było możliwe, ale chyba bez sensu i stare rozwiązanie). Mam możliwość wykorzystania karty komputerowej z 16 wejściami cyfrowymi PCI 1711 firmy Advantech. Jednak na tej karcie jest tylko 16 wejść cyfrowych (oraz 16 wyjść cyfrowych). A tyle właśnie - 16...
zlozyc tak jak podzieliles tylko, ze w druga strone ;)... np. bierzesz bit mnozysz przez 10... w sensie, ze 0b10... czyli dziesietnie 2... dodajesz nastepny bit... i mnozysz i dodajesz i mnozysz ;)... i az sie bity skoncza ;)... a z tym dzieleniem na bity to niekoniecznie... w jakim jezyku piszesz??
Sprawdź reszty kolejnych cyfr z dzielenia przez 5. Wynik mało ciekawy: a(4*n)+2*(4*n+1)-a(4*n+2)-2*a(4*n+3)=0 n=0,1,2,... a(x) cyfra od 2^x
j możesz wyznaczyć z dzielenia modulo (%). W ten sposób łatwo stworzyć funkcję, która może zwracać dowolnie wskazany bit z ciągu bajtów ;) A poza tym właśnie o to chodziło :) ps.Co do rozpoczynania zdania dużą literą a kończenia kropka. To oczywiście zastosuje się do tego. p ozdrawiam kotlar ROTFL :D
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)....
Gdyż reprezentacja liczby ujemnej nie jest jednoznaczna. W systemie zapisu U2 (najczęściej wykorzystywanym) dla liczb stałoprzecinkowych informację o tym, że liczba jest ujemna odpowiada wartość 1 dla MSB oraz odwrócenie wartości wszystkich bitów. W zależności od kompilatora niezaznaczenie wyraźnie typu liczby (signed/unsigned) może zwracać różne wyniki...
Co do drugiej części - wszystko byłoby ok, ale w liczbach binarnych moga znaleźć się są jeszcze inne ciągi bitów niż 0000 ... 1001 - i co wtedy? W tej chwili tak naprawdę wypisujesz reprezentację heksadecymalną liczby, oprócz tego, że pomijasz cyfry A-F. Jeśli chcesz wypisać reprezentację dziesiętną, to musisz przeprowadzić konwersję. Istnieje [url=]prosty...
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=]tutaj. Pozdrawiam, Dr.Vee
inne uwagi: - nie sygnalizuje dzielenia przez zero przy A DIV B i A MOD B - nie wyświetla dziesiętnej liczby ujemnej (czyli liczby z minusem) ani w przypadku liczby B ani wyniku. W przypadku liczby A można by dać wynik dziesiętny trochę grubszą czcionką. - brakuje operacji np. -A czyli dopełnienia do dwóch ((NOT A)+ 1) - także operacja była by przydatna...
Mam mały problem z zadaniem Otóż muszę mam dany adres 17.0.0.0 muszę podzielić go na 75 podsieci i podać parametr 50 Jest to adres klasy A, czyli domyślna maska 255.0.0.0 Jeśli mam podzielić go na 75 to 7 miejsc w 2 oktecie jest zajętych na podsieć. Jeśli mam podać parametr 50-tej podsieci zamieniam ja na system binarny adres 50-tej podsieci to 101.255.255.255...
w 74LS90 zamień kolejność dzielenia - najpierw przez 5 a dopiero potem przez 2 - w ten sposób na wyjściu otrzymasz ciąg impulsów o równej długości "1" oraz "0". Wszystko zrozumiałem i przerobiłem, poza tym dzieleniem najpierw przez 5 potem przez 2 - jak to w ogóle zrobić ? Mam połączone tak: Wyjście z 74LS90 na Q3 Ręce opadają ... :shock: ... a na...
I jeszcze na koniec się przyczepię, "technologia SMT", podobnie jak "dioda LED" czy "siła SEM", to masło maślane, więc albo po prostu SMT albo "technologia SMD" ;) Poprawiłem - na diody uważałem ale SMT się wkradło miało być tak jak jest :) I jeszcze jedna rzecz nie opisana powyżej. Całość chodzi na wewnętrzny RC 8MHz - czyli trzeba tylko wyłączyć...
Zwykłe binarne dzielenie nierestytucyjne przy 10 bitach będzie prawdopodobnie prostsze, niż każda z tych kombinowanych metod - to w końcu tylko 8 obiegów pętli z porównaniem, przesunięciem i warunkowym odejmowaniem, tyle że te trzy operacje trzeba zrobić na 10 (czyli w praktyce 16) bitach. Gdyby toto miało przynajmniej 8-bitowe dzielenie, jak stary...
Przecież piszesz, że dysk był widziany jako RAW. Podaj: a/ - pełną specyfikację komputera. b/ - SMART obu dysków/ c/ - partycjonowanie obu dysków widziane w DMDE, d/ - pliki binarne zawierające sektory LBA od 0 do 2048 z obu dysków. Pewnie dużo można zrobić, ale zacząć trzeba od diagnostyki i szczegółowego opisania problemu.
Interesuje mnie taka kwestia, czy są gotowe układy scalone (prawdopodobnie jezeli juz to z taktowaniem) ktore realizowaly by dzielenie 2 liczb binarnych, zalozmy 4 lub 8 lub iloś-bitowch ?
Takie pytanie mi się nasuwa po przeanalizowaniu twojego kodu: Skąd wiadomo kiedy będzie gotowy/poprawny wynik dzielenia gdy wpiszemy nowe dane wejściowe? przydałby się wejście zezwolenia i ready :D pzdr
Przypominam, że komputery liczą w systemie binarnym! Implementacja tego była by tylko trochę trudniejsza (chyba, że ktoś myśli jak maszyna, do czego się konsekwentnie zbliżam :D ) niż systemu dziesiętnego, a wydajność wielokrotnie wyższa. Można by wtedy w prosty sposób zrobić mnożenie i dzielenie (binarne jest prostsze!), gdzieś na elektrodzi był chyba...
No, nie całkiem ... Dwójka to podstawa systemu binarnego, a o taki opiera się technika cyfrowa. Wszystko, co jest wielokrotnością dwójki łatwiej się przetwarza. W szczególności dotyczy to dzielenia. Dzielenie przez 2 to poprostu przesunięcie zawartości zmiennej (rejestru) o jeden bit w prawo. Dzielenie przez 32 to przesunięcie o 5 bitów w prawo. Kompilator...
Osobiscie polecam ASM, sam w nim pisze. Dzieki ASM dokladnie wiesz co sie dzieje w uC i masz pelna kontrole, zwlaszcza jesli chodzi o czasy wykonywanych instrukcji. Oczywiscie pisanie w ASM jest bardziej czasochlonne niz w jezykach wysokiego poziomu typu C, ale po dojsciu do wprawy, zgromadzeniu procedur i napisaniu wlasnych makr, wydaje mi sie ze w...
1. Info o sofcie. °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°... -zupełnie nowa, moim zdaniem wygodniejsza struktura menu -zupełnie inna czcionka. Nigdy nie chciałem mieć zmienionej, ale ta mi się bardzo podoba. Wielkie dzięki dla plq -dzwonki zmienione na zupełnie nowe, wypasione. Jest ich 66 co razem z dźwiękami z kompozytora...
Podaj gg to pogadamy. Albo wgraj inny soft podobny do tego co masz. Moze ten soft jest uszkodzony albo cos Dodano po 22 Mega soft do 3310 by mdawidm v. 2.12 °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°... SPIS TREŚCI °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°... 1. Info o sofcie. 2. Podziękowania....
Siemka tak jak w opisie szukam softu do 5510 z wymaganiami jak ponizej:) wiem ze da sie to zrobic do 5510 bo ten soft istnieje tylko do 3310:( czy moze wie ktos jak brzerobic taki soft aby pasował do 5510 nie znam sie na edycjach softów:( z góry dzięki za odpowiedzi:) a może ktoś napisał by taki soft?? za nie duża ilość punktow??:) to napewno by sobie...
Jak to zrobić w druga stronę? tzn wpisując np do p Czyli chcesz zamienić liczbę binarną, na liczbę zapisaną w kodzie BCD. BCD=binarna przez dziesięć, razy szesnaście, plus reszta z dzielenia binarna przez dziesięć :D EDIT: No to masz 2 podpowiedzi.
dzielenie w bascomie zjada bardzo dużo zasobów... zamień liczbę na hexy albo binarnie i dodawaj albo odejmuj, [url=]dzielenie binarne to w zasadize odejmowanie z przesunięciem...
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?
Witam! 1. Jak przekonwertowac otrzymany przez uart ciag ascii na liczbe hex. Tzn ktos np wpisze w terminalu 0xDA i chce zeby procesor zapisal ten odebrany ciag jako liczbe 218 do eeprom. Chodzi mi o sama funckje konwertujaca. Raczej chodzi ci o konwersje z hex na dziesiętnie. Musisz wykonać dzielenie przez 100 i wynik zapisać do komórki pamięci, później...
do Eagle : U mnie wartości zmiennych są identycznie w postaci binarnej. do Szymona Tarnowskiego : Odjęcie tych wartości nie jest równe 0 (a powinno), więc tak jak napisałeś podchodzi to pod ten problem standardowy. Wynikiem odejmowania jest: 2,71050543121376E-20 Pozostaje chyba tylko po prostu mieć to na uwadze podczas pisania kodu. Moje podsumowanie:...
Wzór jest bardzo dobry, tylko ilość uśrednień dostosuj do arytmetyki binarnej. Czyli np. 16 próbek, każda po 1/16. Zresztą zamiast dzielenia, na którym tracisz bity, lepiej wynik przemnożyć, uśredniając liczbę o kilka bitów dłuższą, a następnie podzielić całą średnią. W ten sposób unikasz problemu dzielenia wyniku ADC i związanych z tym błędów zaokrągleń.
#include<stdio.h> #include<iostream.h> #include <math.h> void main() { FILE *we, *wy; //deklaracja uchwytow do plikow int i, licznik; int tablica_ASCII[200]; //deklaracja tablicy w znakow ASCII char znak; char haslo[200]; //dekaracja tablicy w ktorej bedzie przechowywane haslo char plik_jawny[20];...
mam dwa kody które napisałem do szkoły teraz dostałem zadanie połączenia tego by wyglądało jak kalkulator o to kod FUNKCJI : uses crt; VAR a,b,l,wynikh,x1,x2:integer; o, d,c: char; e,s:string; reszta,i,j:integer; wx,wy,w,x,y,a1,b1,c1,a2,b2,c2,pdelta,del... wynik:array[1..20]of integer; function dodawanie(a,b:integer):i...
Witam Mam ogromna prośbę. Potrzebuje przeanalizować 2 programy które niestety nie działają poprawnie. Programy pisałem sam lecz niestety sa w nich pewne błędy które niestety nie mogę znaleźć. Po asemblacji działają jednak w programie symulacyjnym nie wyświetlają tego co powinny, wiec s to programy bardziej wychodzące z tego co ma robi dany program niż...
Ok. Faktycznie proste. F F B C = 15 15 11 12 = 1111 1111 1011 1100 A B B A= 10 11 11 10 = 1010 1011 1011 1010 Dobrze!! wiem jak zamienic postać szesnastkową(heksadecymalna) na binarną(dwojkową). Ale jak zamienic postac heksadecymalna na dziesiętna? np. ABBA = ?(10) To akurat jest proste jeżeli masz cyfry Hex od H3 do H0 i liczbę w postaci H_3H_2H_1H_0...
Przepraszam za błędy w tekście "Maskowanie bitów". Poniżej poprawiona wersja. ----------------------------------------... MASKOWANIE BITÓW w pigułce. (Dla tych, którym sprawia trudność zrozumienie zagadnienia) PODSTAWY Liczby binarne - szybkie czytanie ich wartosci (dzisiętnych) polega na określeniu położenia ustawionego bitu (czyli...
Na początek wyrzuć te dzielenia i po prostu skopiuj wymaskowaną zmienną Mm do portu B. przecież Mm zawiera bity - zera i jedynki, którymi chcesz wysterować diody. Konwersja z liczby binarnej na liczbę binarną przy użyciu dzielenia przez potęgi dwójki po prostu powala.
Widzę, że autor chce zrobić konwersję liczby binarnej na BCD. Jest do tego specjalny algorytm, który nie używa mnożenie i dzielenia, tylko przesuwanie bitów i dodawanie warunkowe. Można poszukać w google pod nazwą "bin to bcd conversion algoriht", "Double-Dabble", "Shift-and-add-3 algorithm". [url=]Tutaj przykład. Zapewne jest gdzieś w sieci implementacja...
Aha Dziękuje za ogromny wkład w pomoc. Chwilowo zakończyłem wszelkie symulacje i wróciłem do swojego małego procka (ATmega328pb). Moduł SIM868 pobiera plik binarny z serwera do swojej pamięci. Mogę odczytywać jego dowolny wycinek jak i cały na raz (to akurat zbędne chyba, że chciałbym policzyć na początku jego CRC zanim zacznę go ładować do flash'a....
W załączeniu moje biblioteki na '51 mnozenia, dzielenia, BCD na BIN, BIN na BCD. wszystko jest realizowane na tylu bajtach ile się zadeklaruje w zmiennej LCZYN. ; ;Procedury biblioteczne dla procesora 8031 ; ;-------------------------------------- ;przyklad zastosowania ponizszych procedur ;-------------------------------------- org0; ; ; start:acallBBCD;...
Kiedyś napisałem coś takiego ale w asmie i dla zwykłego '51 ; ; Program obrotomierza ; CZ5msequ0ec77h;5ms dla 12MHz LCZYNequ3;dlugosc czynnikow w bajtach KEYequ6+8;R6 z banku 1-go, stan klawiatury OLDKEYequ5+8;stary klawisz ILOSC_Cequ4+8;ilosc cylindrow silnika ; STATUSequ20h CZAST3equ21h;ostatni pomiar czasu T CZAST2equCZAST3+1 CZAST1equCZAST2+1 CZASTA3equCZAST1+1;ostatni...
proszę o pomoc w napisaniu prostego kalkulatora w c podaje to co napisałem kompilator proszę o pomoc. Proszę o pomoc w napisaniu poprawnego kodu niewiem jak poprawić go za każdym razem program po wykonaniu działania zamyka sie lecz nie wraca do głównego menu . Proszę o pomoc!!!!!!! oto treść zadania. Napisać prosty kalkulator. Po uruchomieniu na ekranie...
11 hex to oznacza 11 w układzie szesnastkowym czyli 17 w układzie dziesiętnym, tyle, że to jest liczba 5 bitowa a nie jak zwykle 4 bitowa ??? Zapis szestastkowy na dziesiętny przeliczasz tak: Ld= c16h*16+c1h Ld - liczba dziesiętna c16h - starsza cyfra liczby, może mieć wartości 0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F gdzie liltery odpowiadają A=10, B=11,...
Witajcie moi drodzy. Zapraszam na kolejną część mojego tutoriala PIC18F2550 i kompilatora SDCC . W tej części poznamy sterownik wyświetlacza LED MM5450, połączymy go z PIC18F2550 i napiszemy od 0 implementację ich komunikacji. Docelowo użyjemy MM5450 do wysterowania wyświetlacza LED 5 na 5. Cały proces powstawania układu na płytce stykowej oraz programu...
Zainspirowany podcastami o historii komputerów (podcast #19 - Słowo o architekturze i słowniczek pojęć By lepiej zrozumieć zagadnienie pamięci, musimy najpierw poznać architekturę, a dokładniej to części składowe procesora. Nie będziemy zagłębiać się w tajniki najnowszych Ryzenów czy i9, ani w sekrety GPU. Spokojnie możemy sobie odpuścić tournée po...
Tu pojawia sie moje pytanie, czy istnieje mozliwosc przekonwertowanie liczby binarnej na np. dziesietnej bez pomocy funkcji dodatkowych, czy idzie to zrobic np. przez printf?! Czy moze musze do kazdej konwersji zapisywac oddzielny algorytm. Jak najlepiej ugryzc to zadanie! Nie da się tego zrobić przez printf. Algorytm jest jeden, zmienia się tylko...
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...
Napisz czy to mają być segmenty z diód led czy z wskaźników 14/16 segmentowych. Jeśli na diodach to ja to widze tak: - pamięć eprom wyjścia danych sterują liniami (8lini) - młodszą częścią adresu pamięci steruje licznik binarny (może być o ograniczonej liczbie stanów w zależności ile ma być kolumn) i jednocześnie poprzez dekoder steruje po kolei każdą...
Nie... dzielenie wymaga więcej cykli procesora... (zależy też jaki sie używa procesora ale zawsze dzielenie jest bardziej cyklochłonne od przesówania binarnego) jeśli to procesor ośmio bitowy a program ma być w assemblerze to nawet nietrzeba takich operacji wykonywać gdyż można odrazu podzielić wyraz na dwa bajty poprostu odczytując starszy bajt a potem...
Najlepiej będzie pozakać to na przykładzie: - zamiana liczby 2527,78125 (dec) na hex Cześć całkowitą 2527 dzielisz przez 16 (i zapisujesz reszty z dzielenia) tak długo aż otrzymasz wynik dzielenia równy zero: 2527 : 16 = 157 reszta 15 czyli F \uparrow 157 : 16 = 9 reszta 13 czyli D \uparrow 9 : 16 = 0 reszta 9 \uparrow Cześć ułamkową 0,78125 mnożysz...
Witam, Mam taki problem - napisałem sobie procedury do obsługi wyświetlacza LCD, nie mogę tylko poradzić sobie z wyświetleniem na LCD zawartości rejestru (16 bitowy). Procesor ATmega 8. Próbowałem takie coś: void pisz_int(unsigned int t) { unsigned char bufor[20]; itoa(t,bufor,10); pisz_text(bufor); } ale nie...
Wersja "pro" :) int szybkie_mnozenie(int a, int b) { int c=0; while(b) { if(b%2) c+=a; a*=2; b/=2; } return (c); } Sprawa jest elementarna. Wiadomo, że mnożenie liczb kosztuje sporo czasu procesora. Zatem ktoś wymyślił algorytm zamieniający "kosztowne" zwykłe mnożenie na równoważny zbiór sumowań i mnożen przez 2, co dla dowolnego procesora jest drobiazgiem...
Wolisz rybę czy wędkę? Jeśli to drugie, to czytaj dalej. Najprostszym sposobem konwersji dowolnie długiej liczby binarnej do pisemnej postaci jest ciągłe dzielenie jej przez 2, a wynik (ascii string) jest zwiększany o odpowiednią potęgę dwójki jeśli dzielenie zwróciło resztę. Zmienne które potrzeba: ilość bitów liczby binarnej i ilość cyfr wyniku, do...
To znaczy masz zrobić konwersję binarną na BCD ? R0 - od 0 do 256 R1 - jednosci 2 R2 - dziesiatki 7 R3 - setki 1 Algorytm 1: start: R0:=liczba R1:=0 R2:=0 R3:=0 while R0>=100 do R0:=R0-100 Inc R3 end while R0>=10 do R0:=R0-10 Inc R2 end R1:=R0 Algorytm 2 DIV - dzielenie całkowite MOD - reszta z dzielenia (łatwiej...
zamiast dzielenia przez 128 mozesz zastosowac przesuwanie bitowe o 7 pozycji w prawo - nigdy nie wiadomo czy kompilator nie zrobil z twojego dzielenia jakiejs przepotwornej petli. pozatym - jesli dobrze widze - to konwertujesz swoja wartosc na kod binarny? jesli tak, to mozna to zrobic jeszcze optymalniej, ale nie wiem czy w C sie da zejsc tak nisko...
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...
Już Ci pisałem, że operacje na wielomianach to nie to samo, co operacje na liczbach, które te wielomiany reprezentują. W(x) mod P(x) to reszta z dzielenia W(x) przez P(x), nie ważne czy w GF(2) czy w R. W GF(2) + i - są równoważne i wykonywane jako XOR na bitach, stąd W(x) + P(x) dla reprezentacji binarnej oblicza się jako XOR liczb binarnych. Reszta...
Oczywiście że można użyć Atmega8 bo kosztuje praktycznie tyle samo, a wszystkie elementy w wersji przewlekanej można upchać na płytce wielkości wyświetlacza. I pozbywamy się błędu pomiarowego, miniaturyzacji. Ten miernik to taka ciekawostka, tak jak napisałem, co można upchać w jeden mały Attiny13. Po prostu mowę mi odbierało gdy widziałem kolejną lampkę...
Zawsze piszę programy tak aby zapełniały całą dostępną pamięć w procesorze (bo czemu mam nie korzystać z całej pamięci skoro za nią zapłaciłem). Dziwne podejście. A jak za jakiś czas poddasz kod optymalizacji, to będziesz wymyślał nowe funkcje by znów zapełnić pamięć? Tak tylko pytam, ogólnie fajna zabawka. Program próbuje zoptymalizować na maxa, potem...
Oj, 7490 jest raczej do dzielenia tylko przez 10, choć można uzyskać mniej w taki sposób, żeby się resetował po dojściu do jakiegoś stanu zliczania - nie pamiętam, czy ma dwa wejścia do resetowania, tak jak 7493; oba te liczniku dają wynik 4-bitowy binarny. CD4017 daje '1' krążącą po 10 wyjściach, można którekolwiek (no, może oprócz pierwszego, to byłoby...
Też zastanawiałam się nad szukaniem nie-binarnym, tym bardziej że jeśli tablica jets posortowana to te same wartości muszą być obok. Mam jednak do zrobienia zadanie i myślę że chodziło o całkowicie binarny search. Co masz na myśli przez znalezienie dolnej i górnej granicy? Założmy, że moja tablica to: [syntax=csharp]int[] array = {1,3,5,5,5,5,6}[/syntax]...
Witam wszystkich, Mam do zrobienia test teoretyczny z sieci komputerowych. Proszę o sprawdzenie i korektę ewentualnie popełnionych błędów. Gwiazdkami zaznaczyłem swoje odpowiedzi: 1. Zaznacz zdania prawdziwe: Adres przydzielony przez serwer DHCP nie może zostać odnowiony *** Wewnętrzny adres IP przekształcany jest na unikatowy adres publiczny za pomocą...
Witam, Zrealizowałem przerywacz podwyższający napięcie z 5 V do 10 V, który jest sterowany atmegą a program napisałem w języku C, lecz mam problem ze stabilizacją napięcia wyjściowego przy zmianach obciążenia. Napięcie przy dużych zmianach obciążenia potrafi wzrosnąć na chwile nawet o 10 V. Sterowanie wypełnieniem PWM zrealizowałem w przerwaniach poprzez...
Jednym z pierwszych projektów, które zrealizowałem mając 9-10 lat było pudełko z kilkoma LEDami, przełącznikami i potencjometrem - taka tam wprawka w lutowanie. Drugim była migająca strzałka LED z kitu bodaj Jabela. Pierwszym, który zepsułem lutownicą transformatorową (której nie polecam) była elektroniczna ruletka z całą masą diod LED. Mój znajomy...
Szkoda, że nikt (ze studentów) nie wpadł na to, że wystarczy jedna funkcja, by przedstawić wczytaną wartość w dowolnym systemie pozycyjnym. Chodziło tu o uzmysłowienie sobie ("odkrycie"), że wartość liczby nie jest trwale związana z jej reprezentacją i nie ma znaczenia to, jak liczba jest fizycznie reprezentowana w pamięci komputera. Dlatego było tak...
mam pytanie co do komputerów liczących w systemie dziesiętnym takich jak ENIAC. One dzieliły sygnał na 9 części np. natężenie aby wyszczególnić kolejne cyfry czy była jakaś inna logika dziesiętna? Cześć, ENIAC (Electronic Numerical Integrator and Computer) był jednym z pierwszych komputerów elektronicznych i wykorzystywał dziesiętny system liczbowy...
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...
Użyłbym raczej dzielenia przez 10 i dodawania, jak w tym przykładzie: (tu gość zamienia 16 bitową liczbę binarną na 4 liczby BCD). Ale własna praca cieszy najbardziej :wink: Pozdrawiam.
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...
Ok, można podać jakieś cóś na nogę AREF, co będzie miało stabilną wartość w woltach, i może być nawet < 5V, co troszeczkę poprawi rozdzielczość, ale jak napięcie na LM-e je przekroczy, to nie poczytamy o niczym ciekawym z przetwornika A/D... Stąd w sumie mój pomysł x10, co wcale nie jest sztywne, można i x4, co nawet w świecie binarnym łatwiej liczyć...
Hey !! hehe nieźle Panowie :) Co do kalkulatora to jakoś na pierwszy rzut, jako człowiek, który nie zna się w ogóle na elektronice, to dosyć zawiły problem, zacznij od jakichś dzwonków, alarmów, liczników itp. :) No ale poważnie, tak jak Xitami pisał jest duuużo dróg do zrealizowania tego tematu, od układów logicznych do procków (tych małych '51 i dużych...
dodawanie odejmowanie mnożenie dzielenie moduł itp wszystkie działania są takie same we wszystkich systemach liczbowych.. na komputerze pojawiają się nam cyferki dziesiętne gdyż takiego syst. uczyliśmy się w szkole.. na komputerze wszystkie operacje są wykonywane w kodzie dwójkowym(binarnym) a wyniki są takie same i w dziesiętnym.. przykładowy przykład:...
Jeżeli między znakami masz jedną kolumnę odstępu, to na pierwszej stronie będą dwie, a nie jedna kolumna z drugiego znaku, no ale to szczegół ;) Nie wiem, jak masz zapisaną "czcionkę". Jak na moje oko, to może być po bajcie na każdą linię i takich linii 7, jedna po drugiej, potem następny znak itd. Nieużywane bity (te z prawej, znaki wyrównane sa do...
Witam. Kiedyś trafiłem na szybki slgorytm do konwersji binarnej na bcd, ale nie moge teraz go znaleźć jak jest potrzebny :/. Polegał na dodawaniu 6 do półbajtów i coś się z tym dalej robiło. Wiem, że opis tego co szukam jest marny, ale może komuś z was coś to mówi i podał by jakiś link bądź pseudokod. Chce to zaprogramować na Atmega8. Algorytm polegający...