No ale czemu zależy Ci na tym, żeby to było uint16_t - skoro liczba jednak jest ze znakiem, to w czym gorszy jest typ int16_t? 4\/3!!
Różnicę widać przy przesuwaniu rejestru w prawo (przy dzieleniu przez 2^n). LSHIFT przesunie wynik o zadane przesunięcie i z lewej wrzuci zawsze 0, ASHIFT sprawdzi najstarszy bit (bit znaku w U2) i w uzupełni od lewej rejestr jego zawartością. Chcesz poprawnie dzielić liczby ujemne przez 2^n - używaj ASHIFT.
Witam. Czy wie ktoś jak z jednej liczby np. 25 zrobić dwie zmienne na pierwsza i=2, i druga j=5.bez użycia ifów czy switchów. Dodam że ta liczba dwu cyfrowa bedzie się zmieniać.
a nie da się potraktować wartości jak uint? Jeżeli nie, to przeskalować dzieląc wartość na część dodatnią i ujemną. Dla zakresu 0..32767 wynik wprost. Dla zakresu ujemnego dodajemy stałą 32768 i wynik razy dwa albo jeden shift w lewo. Edit: można też zrobić pojedynczy shift w prawo (dzielenie na pół) i dalej przeskalować liczbę z zakresu 0..32767 Skala...
Da się robić różne cuda, ale po co? Autora nie chciałbym spotkać na drodze (pisze lewo, przesuwa w prawo ;-) ) Wedłu standardu C działanie takie o które pyta jest "implementation-defined" A że się tak zapytam czy przypadkiem nie chodzi o dzielenie przez 2^n? Jeśli tak, to czemu po prostu nie dzielisz przez 2 do odpowiedniej potęgi? Albert
temp2temp jest tylko do sprawdzenia, wykluczenia tego, że to zmienna decicelsius2 jest winna wykrzaczaniu temp2, co pokazało, że nie, bowiem w temp2 i w temp2temp przy wykrzaczeniu są inne wartości. Co do zmiennej licznik, to ona się ma nie zerować, ponieważ liczę średnią temperaturę przez cały czas działania urządzenia, a więc potrzebuję sumę wszystkich...
Cecha EA = -22 Cecha E6 = -26 wg algorytmu który podałem w moim pierwszym poście 0100 0000 0000 0000 0000 0000 * 2^(-22) 01,00 0000 0000 0000 0000 0000 = 1.0 kg -1kg 1100 0000 0000 0000 0000 0000 * 2^(-22) wniosek: najstarszy bit określa znak liczby, 1 - ujemna, 0 - dodatnia 0.1 kg 0110 0110 0110 0110 0110 0110 * 2 ^ (-26) 0,00011001100110011001100110...
Próbowałem dodać pętlę if, która miałaby sprawdzać, czy nie próbuję dzielić modulo liczby ujemnej To jest ten problem. jak ewentualnie mogę to rozwiązać? Zauważ, że zastosowanie Math.Abs tutaj nic nie da, ponieważ dniem poprzednim dla 0 (niedziela) nie jest -1, ani wartość absolutna (1), lecz 6 (sobota). Zrób dodatkową funkcję - wyznaczającą dzień...
Bardzo dziękuję za dzielenie się wiedzą i przydatne oprogramowanie - może wreszcie wyciągnę z szafy raspberry PI i przyda mi się właśnie do MPPT 10A :) Czy ja dobrze rozumiem, że liczby ujemne prądu kodowane są w U2 (inwersja bitowa + 1) ?
Dzielenie zmiennej int16 na dwie mniejsze możesz zrobić tak:[syntax=c]int 16_t zmienna, zmienna1; int8_t mala_zmienna, mala_zmienna1; mala_zmienna = zmienna >> 8; //przesuniecie bitowe skopiuje 8 bitów starszych mala_zmienna1 = zmienna; // skopiuje tylko 8 bitów najmłodszych zmienna1 = (mala_zmienna << 8) + mala_zmienna1; [/syntax]
A nie jest tak, że przesuwając w prawo dzielimy (zmniejszamy) wartość, a w lewo mnożymy (zwiększamy)? Czyli przesuwając bity, przesuwny także tą jedynkę na początku i nie jest ona chroniona? Pozostaje więc tylko zwykłe, czasochłonne dzielenie?
Tutaj masz listing który będzie współpracował ze schematem który zamieściłeś. Kiedyś takie coś robiłem i do 100kHz chodziło na pewno. Dopasujesz to tylko do swoich potrzeb, ale na razie to załaduj i zobaczysz co będzie. I to wszystko na jednym liczniku się robi. '********Pomiar czasu trwania impulsu ujemnego przebiegu prostokątnego i częstotliwości*********...
Eh kolego, nie uważałeś na matematyce? Dzielenie całkowitoliczbowe to Q \cdot D + R = X , gdzie Q (quotient) to iloraz, D (divisor) to dzielnik, R (remainder) to reszta, a X to dzielna. Żeby było tylko jedno rozwiązanie to zakłada się że R \in . Dla liczb ujemnych są problemy ze znakami, więc to na razie pomińmy. Jeśli chcesz korzystać z reprezentacji...
dzięki wszystkim za pomoc temat uważam za zamknięty modulo to faktycznie reszta z dzielenia dla szukających tak jak ja dorzucam łyk teorii. Jeżeli a i d są liczbami naturalnymi, gdzie d nie jest zerem, można udowodnić, że istnieją unikalne liczby całkowite q i r, gdzie a = qd + r i 0 ≤ r < d. Liczba q zwana jest ilorazem, zaś r resztą. Przykłady...
Nie widzę tu jakichś prawidłowości. Ja widzę, pierwsza - regularnie występują bajty synchronizacyjne 7f, 7f a po nich wartości binarne. Jedno jest pomieszane - część bajtów jest HEX a część jako ASCII a to strasznie miesza - trzeba te ASCII zamieniać na HEX i potem dekodować liczby. Problem jest jak pojawi się spacja bo słabo ja widać a też ma swój...
Napisałem taki post, ale chyba w złym dziale: http://www.elektroda.pl/rtvforum/topic11... Rzuuf: dzięki za przekierowanie. A co do mocy czynnej, pozornej i biernej to mam swoja teorię. Nie chcę żebyście od razu mnie stąd wygonili. Po prostu zweryfikujcie moją teorię: Moim zdaniem moc pozorna to moc zależna tylko od prądu skutecznego przepływającego...
:?:Witam wszystkich! Mam problem nie wiem jak podzielić liczbę stałoprzecinkową trzybajtową przez trzybajtową w kodzie ZM czyli znak-moduł w ASM '51. Jak to dzielić w przypadku gdy dzielna jest ujemna a dzielnik jest dodatni i odwrotnie lub gdy obie liczby są ujęmne lub dodanie.Ilu bajtowy jest wtedy wynik. Jeżeli ktoś by miał taką procedure dzielenia...
Niepotrzebnie sobie życie komplikujesz tym inwerterem "różnicowym". Jak rozumiem - chodzi o odwracacz ze sprzężeniem katodowym. Jest on najgorszy jeżeli chodzi o symetrię napięć wyjściowych (konieczne jest zróżnicowanie rezystorów obciążenia w anodach gdy się chcę tę asymetrię zlikwidować), w przeliczeniu na liczbę zaangażowanych lamp daje dwukrotnie...
Zawsze zamiast dzielić można odejmować np na początek 10000 licząc ile razy to zrobisz zanim wynik będzie ujemny wtedy liczba operacji odejmowania -1 to liczba dziesiątek tysięcy. Dodajesz 10000 żeby wynik był dodatni i zaczynasz odejmować 1000 aż będzie ujemna dodajesz 1000 i odejmujesz 100 itd aż na końcu dodasz 10 a reszta będzie jednostkami . Na...
Można to zrobić bez makra, najpierw dzielisz łańcuch na części (spacja oznacza taki podział), potem analizujesz ostatni znak, jeśli jest to myślnik to robisz z tego liczbę ujemną. Prościzna. Jeśli nie lubisz długich zapisów w komórkach, możesz to rozbić na etapy i w kolejnych kolumnach masz kolejne kroki działań.
Już kiedyś pisałem tutaj o konwersji bin->bcd. Są na to specjalne algorytmy. Ponieważ nigdy mi się nie chce ich szukać, konwersję przeprowadzam metodą łopatologiczną: 1. Odejmuję od zadanej liczby 1000 tyle razy, aż uzyskam wynik ujemny. Liczba odejmowań (pomniejszona o jeden) daje cyfrę tysięcy. 2. Koryguję liczbę po odejmowaniu (dodając z powrotem...
Mnie bardziej dziwi, że kompilator w ogóle dopuścił taką składnię. Math.round nie ma? Alternatywnie możesz pomnożyć przez 15, a wynik podzielić przez 10 (dzielenie całkowite). Co prawda da różnice względem funkcji zaokrąglenia, ale w ogóle nie użyjesz FPU.
Mam pytanko oto część programu z postu Odczyt = 1wread(2) T = Odczyt - 16 T = T * 10 T = T \ 16 T = T \ 10 Możecie mi powiedzieć dlaczego najpierw mnożycie przez 10 potem dzielicie przez 16 i dalej dzielicie przez 10 ( czyli 10*16/10=16). Nie lepiej tylko podzielić przez 16. I jeszcze jedno pytanie dotyczące liczb ujemnych Ds przedstawia liczby ujemne...
-Wciskamy oba klawisze i załączamy zasilanie. Na wyświetlaczu pokazuje się SEt. -Puszczamy klawisze - na wyświetlaczu mamy P1 - program 1 -Klawisz ustawiania godzin zmienia numer programu (P1 -> P2 -> P3 -> P4 ...) -Klawisz ustawiania minut wchodzi w odpowiedni program I teraz P3 to korekcja dokładności (pokazuje się "corr" a potem mozna ustawiac. W...
Policzyłem że Ziemia musi mieć trochę poniżej 18cm średnicy, aby czas się na niej zatrzymał. Wzory są chyba dobre, bo skurczyć bardziej już się nie może, bo czas stanął i wszelki ruch, inaczej trzeba by było wyciągać pierwiastek z ujemnej liczby, ale i tak dzielenie przez zero jest dziwne. Ciekawe jakie to oddziaływanie jest w stanie działać w zatrzymanym...
Problem staje się prosty gdy możemy się posłużyć określeniem ogólnym "czas", jednak gdy mamy osobno minuty i godziny - jest inaczej. Procki nie operują na pojęciach ogólnych , tylko na liczbach i zapewniam Cię , że porównywanie liczb(nawet wielobajtowych) jest prostrze niż np. ich dzielenie. Więc może skupmy się jedynie na sposobie porównania dwóch...
Nie wiem też po co to dzielenie przez 16 w kodzie, przecież wystarczy przesunąć zmienną o 4 bity w prawo, a kod zmaleje w oczach :) Jeśli chodzi o C to przesunięcie bitowe liczby ujemnej jest niezdefiniowane w standardzie. Albert
Witam goreckidiy. Twój projekt spełnia funkcę, którą chciałeś osiągnąć. Ale jest ale :) Niezwykłe zbiegi okoliczności sprawiły, że to działa (mam nadzieję) prawidłowo. Spójrz na zdjęcie. http://obrazki.elektroda.pl/9690955600_1... W programie masz coś takiego:[syntax=text]'*********WAŻNE!!!*... data1 = data_in - 1048574 'tyle suwmiarka...
To jest dosyć ciekawy temat - tradycyjne dzielenie liczb jest czasochłonne bez sprzętowego układu dzielącego. Dlatego ludzie upraszczają sobie życie stosując dodatkowe algorytmy, działające dla określonych dzielników. Dla dzielenia przez kolejne potęgi liczby 2 wystarczy przesuwać rejestr w prawo. Z kolei przytoczona przez Ciebie procedurka dotyczy...
Akurat drugi przykład jest bardzo kiepską ilustracją, bo CRC operuje na wielomianach w polu GF(p), gdzie p jest liczbą pierwszą, a dzielenie takich wielomianów to nie to samo co dzielenie liczb dziesiętnych (przede wszystkim nie ma tam "pożyczki"). Na dodatek nie istnieje pole GF(10), bo 10 nie jest liczbą pierwszą. Poza tym w "przykładzie" są błędy...
Mam pewien problem i mam nadzieję, że ktoś będzie mi w stanie pomóc? Polega on na tym, że mam już liczby, które są właściwym wynikiem A oraz kolumna B średnią wyników z kolumny A. Jeżeli dzielę je przez siebie to w sytuacji jak: A jest liczbę dodatnią np. 5, natomiast B l. ujemną - 2 to wynik wychodzi oczywiście ujemny tj. -2,5 Zamiarem tego działania...
Pytanie kolegi jest dość złożone pierwsza różnica sygnał taktujący T0 może zostać wstępnie podzielony przez dzielnik więc aby otrzymać 1 sekundę należy najpierw policzyć ile cykli zegara należało by odmierzyć wiadomo że wartość ta musi być mniejsza od pojemności licznika T0 . Problem w tym że na T0 nie uzyskasz przrwania co sekundę dla kwarca np 8MHz...
Nie chodzi o liczby ujemne, a o to, żeby próbki ze znakiem zamienić dla DAC na zakres od zera do MAX, przy "zerze" w MAX/2. Pryz okazji jeszcze mamy zmianę znaku, bo zapewne za DAC jest podłączony wzmacniacz odwracający (o 2 rezystory mniej niż nieodwracający).
Hunterhouse ten sposób z liczeniem liczby modulo jest genialy :) Sam na to wpadles?? Na koncu jest jeszcze obliczany pierwiastek,tez to jest dosc czasochlonne dla procka , zastanawiam sie czy na niego nie ma podobnego sposobu :) Czyli beta przyjmuje wartosci od 0- 31, i zmienia sie w zaleznosci od k ,ale caly czas w zakresie 0-31 . Jak dokladnie obliczone...
Ten zamieszczony kod, może zadziałać, ale tylko dla liczb dodatnich, większych od 0 (zero). Dla zera i dla liczba mniejszych od 0, wynik nie będzie poprawny, bo przeprowadzasz obliczenia na złym typie danych. Skoro dzielisz : [syntax=cpp]int la(int n) [...] return 1/result;[/syntax] To jak chcesz wynik zwrócić do INT ? Całkowitą wartość dzielenia z...
Mam rometa SCMB 250 (2 cylindry, wtrysk paliwa) , zamontowałem taki licznik jak w załączniku i mam trochę dziwny problem z obrotomierzem. podłączenie sygnału obrotów poprowadzone jest przez kondensator i rezystor z cewki zapłonowej, tak jak narysowałem na schemacie. Obrotomierz pokazuje obroty, dla biegu jałowego to jest 1000 rpm, jednak jak kręcę motor...
No tak, przyjrzałem się formatowi REAL w Siemensie i rzeczywiście wyszło na to, że będzie działać. Dzielenie /R można przeprowadzić na Integerach, a nawet DINT, ale tylko pod pewnymi warunkami: 1. OBIE liczby nie są typu REAL (czyli mają tak samo niepoprawną cechę) 2. Liczba DINT jest nie dłuższa niż 23 bity (czyli mieści się w całości w polu mantysy...
Witam Mam do zrobienia kilka zadań w C++. Zadanie 1 zrobiłem, mam problem z zrobieniem pętli z zadania 2. Zamieszczam to co zrobiłem do tej pory proszę o jakąś podpowiedź . Zadania Zadanie 1 Zadanie 1 Napisać program, który: 1. wczytuje imię użytkownika (jako zmienną typu string) 2. wczytuje jeden znak informujący, czy użytkownik jest kobietą, czy mężczyzną...
Shift pozwala szybko dzielić lub mnożyć tylko przez kolejne potęgi dwójki czyli, żeby się nie rozpisywać ograniczę się do bajtu :2,4,8,16,32,64,128 i 256 Ten Shift tam nie musi zostać. Umieściłem go tam bo liczba przez którą Ty dzieliłeś była potegą dwójki :D Shift Zmienna, Right, 1 ' podzieli ją przez dwa Sgift Zmienna, Right, 4 ' podzieli ją przez...
Podam na AT89C2051, ale to jest to samo, trochę inne liczby tylko $regfile = "89c2051.DAT" $crystal = 12000000 Dim T1ov As Word , Cnt1 As Word On Timer1 T1_int Nosave Enable Interrupts Enable Timer1 Impuls Alias P3.5 'tu podłączamy impulsy wtryskiwacza Dim Liczba As Long Cursor Off Noblink Cls '***************Pomiar czasu trwania impulsu ujemnego...
Atom, wydaje mi się, że sprawiłeś, iż od teraz jestem mądrzejszy :) MSB nadaje flagę, a bity 14,13,12 i 11 są ustawione na 1, by nie zawyżać wartości odczytu. Tak więc nie muszę przesuwać bitów, nie muszę kombinować. Wystarczy, że sprawdzę MSB i jeśli będzie się świecił, mam tę liczbę potraktować jako ujemną (zanegować i poddać obróbce, by wyłuskać...
Wielkie dzięki mirekk36 Rozjaśniło się i to bardzo !!! Właśnie kompiluję i sprawdzam nowe procedury Nie wiem czy się nie zawieszę na liczbach ujemnych (zmienna Single) Jak co to znów poproszę o pomoc. Rzeczywiście daruję sobie te dzielenie bitów. A w Helpie - jak to w Helpie wszystko trochę zawile wytłumaczone (choć w tym przypadku masz rację nie doczytałem...
A ja robię tak: Odczytuję 16 bitów z DS18B20 (i jest to liczba signed, np. int), następnie mnożę przez 100, dodaję do tego 8 i dzielę przez 16. Dzięki temu mam gotowy wynik temperatury w setnych Celcjusza, a potem to już z górki (liczba ciągle jest jako signed). Też tu nie ma zmiennych typu float/double oraz nie ma żadnych przesuwań bitowych i sprawdzania...
a nie mówiłem...drugi zajmie jeszcze więcej :) Drugi pomysł używałem na Atmega16, lecz nie wywoływałem fprintf_P(); tylko kilka razy. Jeśli wiesz jak będzie wyglądał wynik tzn ile będzie miał miejsc po przecinku i w sumie ile cyfr to zawsze możesz użyć pomysłu kolegi: elektronik12z Możesz też bawić się w dzielenie, mnożenie, odejmowanie i modulo (czyli...
Hej , strasznie komplikujesz sobie życie przy tym odczycie temperatury. Natomiast Ty , zastanów się co piszesz :evil: ...w pierwszym bajcie 12 bit decyduje o znaku Jak to możliwe , skoro bajt składa sie z 8-bitów :?: Z tego co mi wiadomo , o znaku liczby zapisanej w kodzie uzupełnień do dwóch , decyduje najstarszy bit :!: A i jeszcze jedno zamiast...
Witajcie, niestety ale nie jestem dobrym programistą w Delphi - w sumie to nie znam tego języka. Jednak stanąłem teraz przed potrzebą napisania prostej aplikacji. Z procesora (por RS-232) wysyłam sobie do programu zmienne typu int16_t dzieląc je na dwa bajty i wysyłam w odpowiedniej kolejności. W programie po stronie PC odebrane trafiają do tablicy...
NWD jest ciekawe, dzieli każdą liczbę przez taką samą zmienną aż znajdzie wspólną :) dla przykładu (136,26) będzie sobie dzielił przez 26,25,24 ... 2, mnie bardziej interesuje przypadek w którym for(i=y;i>1;i--) { if ((y%i==0) && (x%i==0)) { break; } } return i < 0 ? -i : i; i <...
W przestrzeni mając 3 punkty podstawy dowolnego ostrosłupa oraz 3 odległości tych punktów od wierzchołka bez problemu można wyznaczyć wierzchołek, tylko trzeba skorzystać z: wyznacznika 3x3 (czterokrotnie), własności iloczynu skalarnego wektorów, wyznaczenia wektora normalnego do płaszczyzny: a/ Najpierw należy wyznaczyć wektor normalny płaszczyzny...
albo przesuniecia bitowe... Nooooo chyba nie bardzo. W środku notacja binarna, a potrzebna dziesiętna. Dodano po 12 Cześć, mam zmienną typu int wartosc . Chciałbym wyciągnąć z niej cyfry, ale rozwiązanie typu wartosc - 10*(wartosc/10) w celu poznania cyfry w miejscu jedności jest bardzo brzydkie. Gdyby chodzilo o jedną cyfrę to rzeczywiście...
O zasilaniu czy sprawności kodu nie pisałem z prostych przyczyn: Piszącego w Bascom interesuje tylko to by program działał a nie ciągnął mało prądu (zasilanie bateryjne i Bascom? Nigdy nie słyszałem by ktoś to łączył) Piszącego w Bascom interesuje by progam działał niezależnie czy musi użyć procka z 16kb czy 32kb Ja wolę by program mieścił się w 1kb...
Najpierw policz to tak jak dla pojedynczego uzwojenia wtórnego. Nie przejmuj się spadkami napięć na diodach, wpisz 0.6V. Najważniejsze jest napięcie na żarzeniu. To uzwojenie zwykle jest dzielone na dwa, z odczepem w środku. Odczep jest potrzebny z dwóch powodów. Pierwszym jest konieczność podłączenia między niego a ujemne napięcie diody Zenera o napięciu...
dzielenie liczba liczba ujemny dzielenie liczba bitowy
pilot chassis dioda numlock silnik automat zmiana kierunku obrotów
falownik hybrydowy flash delphi
Strojenie głowicy magnetowidu: porady i kroki Brak mocy w Suzuki Swift 1.3 DDiS - przyczyny i diagnostyka