U Ciebie wzór jest generalnie ten sam, tylko kolejność działań inna: D = Bz / ( Az / A) = Bz / Az * A Z pytaniem o zakres to coś pokręciłem - już późno, a siedzę od rana... EDIT: Na przykładzie: U Ciebie Bz = 50, Az = 100. Wyliczasz C = Bz/Az * 256 = 128. I mamy: D = A * C / 256, B = D + 20 czyli: A = 50 -> 6400 / 256 + 20 -> 25 + 20 -> 45 Te 256 to...
drobny opis programu: [syntax=vb] Public Class Form1 Dim operat As String ‘deklaracja zmiennej operatora artemtycznego Dim Cyfra_Pierwsza As Boolean = True ‘deklaracja zmiennej Dim walor1, walor2 As Double ‘deklaracja zmiennych dzialan artmetycznych Private Sub operat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)...
... ALE !!!!! do pliku .csv wkleja wszystko do kolumny A, a nie do trzech kolumn i wygląda to tak: E377L,40,0 E488L,252,0 A potrzebuję tak: E377L kk400 E488L kk2520 Żeby nie dzieliło przecinkiem, a wpisywało w oddzielne kolumny. Ależ przecinek w pliku CSV oddziela kolumny. Wystarczy w trakcie importu zmienić separator na "przecinek" - zaiste standardowo...
Jest w Microwin (trzeba sobie ściągnąć) funkcja scale: [url=http://support.automation.siemens.c...
Wynik musi byc umieszczony w zmiennej typu SINGLE. Przykład: Dim A As Single , B As Long A = 10 : B = 8 Cls A = A / B Lcd A Do Loop
(int)/(int) - dzielenie bez przecinka (procesorowy DIV jednostki ALU) (int)/(float) lub (float)/(int) lub (float)/(float) - dzielenie zmiennoprzecinkowe (jednostka FPU) 1 <- liczba typu (int) 1.0 <- liczba typu (float)
No właśnie myślę... Fusing wymaga przynajmniej jednego znaku "#" lub "&" po kropce, więc zawsze wyświetli tam przynajmniej jedno zero... A może by tak za pomocą STR() zamienić Single na tekst i poeksperymentować z instrukcją Format() ? Można też inaczej, np: IF INT(N) = N Then Liczba jest całkowita i wyświetl bez formatowania Else Liczba ułamkowa...
Najpierw poczytaj co to są liczby stałoprzecinkowe i zmiennoprzecinkowe. Takie dzielenie jak tu zostało zaprezentowane jest na liczbach stałoprzecinkowych. W takim przypadku to ty decydujesz gdzie będzie przecinek i czy w ogóle będzie. Po za tym powtórzę się za kol koodpl : po co takie rzeczy rzeźbić w asm?
Co to za studia kończysz, chyba nie techniczne? W takiej sytuacji do przechowywania temperatur użyj najnormalniej w świecie typ int (int16_t / uint16_t w zależności od zakresu temperatur). Jeśli rozdzielczość odczytów masz 0,1C to przechowuj wartość dziesięciokrotnie większą pamiętając, gdzie jest przecinek. Na przykład dla 20,8C przechowujesz 208....
Coś to do końca mi nie gra, bo PT100 w zakresie climatic ma dwa miejsca po przecinku (trzeba dzielić przez 100), a w standard jedno (trzeba dzielić przez 10). Pytanie co masz wybrane w konfiguracji sprzętowej i dlaczego na HMI masz dwa miejsca po przecinku, skoro dzielisz przez 10?
To wyświetl wartość podzieloną przez 10, przecinek i resztę z dzielenia przez 10. :)
float normalized = 1.0 * x / INT32_MAX; To mnożenie przez 1.0 jest tu do czegoś potrzebne? Konieczny trick w tych językach, inaczej wejdziesz na pole minowe dzielenia stałoprzecinkowego. Rzutowanie na zmienny przecinek też by było ok (i chyba bez różnicy w wydajności)
Tak, łatwiej jak ramka będzie w Bascomie miała taką postać: print zmienna1,",",zmienna2,", ", zmienna3,"x" czyli zmienne dzielisz przecinkiem, albo innym znakiem, zawsze takim samym. Tylko nie wiem po co jeszcze do tego AVR? nie lepiej wszytko zrobić w ESP?
Funkcją replace usuwasz najpierw "spację" na końcu. Potem usuwasz przecinki. Masz liczby całkowite. Formułą dzielisz je przez 100 i w sąsiedniej komórce masz to, co chcesz.
Dzieki , widze ze operujesz tu na czterech bajtach ale nie uwzglednia to przecinka, a mnozenie z przecinkiem , jak i dzielenie z przecinkiem jest znacznie trudniejsze i nadal mam z tym problem. Co zrobic i jak to zrobic?
witoldwitoldowicz - trochę udziwniasz, nie prościej sumowanie zrobić w przerwaniu? goldcap - zajmuje sporo bo używasz arytmetyki zmiennopozycyjnej. Jaki sens jest mnożyć razy 1.1 a potem razy 1000? Nie lepiej od razu pomnożyćrazy 1100? Jeśli nie wyświetlasz nic po przecinku to dzielenie przez 1024.0 też sensu nie ma, lepiej przez 1024. A jeśli masz...
A tak z ciekawości to pokaż cały kod. W czym kompilujesz ? Przy okazji użyć syntaxu C++ będzie czytelniej. Kolega Sedr sugeruje, że wprowadzasz dane w nieprawidłowy sposób, to częsty błąd. Czy po wprowadzeniu z kropką zamiast przecinka nadal są jakieś problemy ?
Raczej "na wolno" to wymyśliłeś. "Na szybko" to jest moja wersja bez zmiennego przecinka. ;) Do 18 dodajesz 7 - wychodzi 25, Ty dzielisz przez 8, a kompilator przesuwa w prawo o 3 i jest wynik 3.
poprawny zapis to: ((50.0/3.0*X - 100)*X + 850.0/3.0)*X - 200 tzw. schemat Hornera, minimalna liczba mnożeń w języku C, 50/3 równa się 16, dzielenie liczb całkowitych traktowane jest jako całkowitoliczbowe
No ale mi chodzi o Java a nie o PHP. Fakt faktem metody nazywają się tak samo ale ja chce zrobić takie coś. Pobieram dane z 2 TextField : float i_BL = Integer.parseInt(txtBL.getString(... float i_P = Integer.parseInt(txtP.getString(... wykonuje na zmiennych i_BL i i_P działanie dzielenia : float liczba = i_P/i_BL; i teraz...
właśnei w tym proble że będą to zmeinne... i wiem tylko tyle że 8bitowe. Chcę obsłurzyc DS1820 i tam jest taki śmeszny wzór. sory za tak głupie pytanie, ale czy nie da sie jakos powiązać reszty z dzielenia z tym co sie "dzieliło" i uzyskać wynik pierwszej liczby po przecinku?
To nie żaden problem. To zwykłe dzielenie stałoprzecinkowe. Jeśli operandami dzielenia są liczby całkowite, to wynik też jest liczbą całkowitą. Jesli chcesz wynik po przecinku, to musisz albo zrzutować któryś z operandów na liczbę rzeczywistą, albo dokonać jego zapisu jako liczbę rzeczywistą (np: 2.0). Zauważ, że w C, w odróżnieniu od Pascala, nie ma...
:) Komenda mod to taka reszta z dzielenia czyli: zmienna = liczba mod 4 zmienna - miejsce gdzie zostanie wpisana reszta z dzielenia liczba - zmienna która jest dzielona przez 4 (w miejsce 4 możesz wstawić inną liczbę lub zmienna) Dodatkowo w Bascomie są dwa rodzaje dzielenia znak / i \ pierwszy (/) używamy do dzielenia z resztą (w przypadku zmiennej...
Jak podzielisz tą swoją liczbę 13845 przez 10000 to otrzymasz 13,845, ale zapisane binarnie czyli część całkowita to będzie 13, a ułamkowa już niestety nie 834 tylko na przykład 0,834*256 = 214 (dla 8-miu bitów na część ułamkową). Albo 0,834*1024 = 854 jak przyjmiesz 10 bitów na część ułamkową. Pożytek z takiej części ułamkowej żaden. Jednym słowem...
Przedstawiona procedura to raczej funkcja DIV, a nie MOD. Więc nawet gdy to uruchomisz to otrzymasz całkowity wynik dzielenia a nie 'to co po przecinku'.
Tak, ale co z dzieleniem wartości nieparzystych ? Rozumiem jako: co z ułamkami w wyniku po dzieleniu? Gdy długość bufora jest potęgą 2, to można w ogóle dzielenie pominąć, a wystarczy przesunąć wirtualny przecinek w odpowiednią stronę, przykładowo przetwornik daje 12 bit (0-4095), masz okno uśredniania o długości N = 8 próbek, to SUMA będzie w zakresie...
Pytanie było o C++ a nie ansi C to po pierwsze. Po drugie nie uzyskasz takim dzieleniem żadnej liczby z przecinkiem bo wynik jest typu int i kompilator zrzutuje wynik dziąłania w górę na int. Widzę, że zrozumienie działania kodu trochę przerosło przedmówcę. Ale niech będzie, to samo w C++: int dzielna, dzielnik; int wynik_skalowany; wynik_skalowany...
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...
witam. config.h dołączony, port i pin ds'a również, zasilanie z osobnego przewodu. Tak się zastanawiam czy nie trzeba przypadkiem ustawić zegaru procka tak jak jest w pliku config na 8MHz przez fuse bity? Słuszna uwaga demeus, zapomniałem jakże prostego i zarazem ważnego słowa DZIĘKUJĘ. Więc dzięki wielkie za swój wkład jaki poświęcacie. Dodano po...
Dzielenie to w zasadzie odejmowanie. Nie napisałeś z jaką dokładnością ma to działać. Czy dzielenie z resztą czy do iluś miejsc po przecinku ?
Napięcie ładowania żelowego nie przekraczać 14,4V. Mróz nigdy nie był przyjacielem akumulatorów i raczej długo jeszcze nie będzie. Co do dolewania wody... to prawda ze akumulator gdy pracuje traci wodę (głównie ładowanie). Kupujesz wagę z miejscami po przecinku i ustawiasz ją na stałym miejscu. Ważysz każdy akumulator z miejscem po przecinku. Po nie...
Tak może być,ale liczba1 jest typu unsigned long int bo może przybierać tylko wartości dodatnie całkowite(bo innych program nie przewiduje) i chciałem żeby powieściła jak największe wartości.Ale chyba będe musiał zmienic jej typ na float :(
Jak podajesz adresy w formacie: A2, C180 etc. nie możesz zapisać FormulaR1C1, tylko Formula. Zamiast dzielenia podajesz przecinek, czyli: [syntax=vb]Worksheets("Kowariancja").Ran... = "=COVAR(Stopy!A2:A180, Stopy!A2:A180)"[/syntax]
Pytanie czy na pewno potrzebna Ci jest arytmetyka zmiennoprzecinkowa ? Czy może da się wszystkie obliczenia zrobić na liczbach całkowitych 100 razy większych używając typu long int ? Dopiero podczas wyświetlania wstawiając odpowiednio przecinek poprzez wyświetlenie części całkowitej z dzielenia zmiennej przez 100 wstawienie przecinka i wyświetlenie...
Tak, chociaż brakuje tam 20gr ale wynika to z zaokrąglenia dużej ilości miejsc po przecinku. Błąd powstaje w miejscu dzielenia 2408,42 : 19,32 = 124,6594202898551 Jeżeli przyjmiesz nie 124,65 tylko 124,66 otrzymasz wtedy 1034,67+695,60+678,15 łącznie 2408,42zł Jak widać rozliczenia które ktoś tutaj sugeruje nijak mają się do faktycznego zużycia.
Dzięki, teraz wiem, że on otrzymuje wartość na 10 bitach, więc teoretycznie kasując linię z dzieleniem napięcia przez 10 otrzymam wynik z dwoma miejscami po przecinku gotowy do multipleksowania (a brak dzielenia przy braku miejsc po przecinku jest jakimś niedopatrzeniem). Ale jak te woltomierze podłączyć do zasilacza, by zachowywały się jak opisałem...
Najlepiej zadeklaruj int A; a do wszystkich obliczeń stosuj A/10.0 (najprostszy i najwygodniejszy sposób) Można też zaokrąglić stosując funkcje RoundTo(A,-1) lub ((int)(A*10))/10.0 (poprostu najpierw mnożymy razy 10 później rzutujemy na inta a póżniej dzielimy przez 10 i rzutujemy na float)
Mówiłem że nie zastosowałeś zaokrąglenia. Pozostawiłem twoje wyliczenia ale z większą ilością miejsc po przecinku. Jak widzisz to nie są liczby z dwoma miejscami po przecinku tylko mają większą dokładność. (gdybyś posłuchał (zrozumiał) co mówiłem z przyciskaniem ikonki "zwiększ dziesiętne" zapewne byś do tego sam doszedł) Excel w komórce przechowuje...
Czy są gotowe bilbioteki czy w tym przypadku muszę ręcznie wyciąć tysiące następnie wstawić przecinek i dalszy ciąg ? W gotowce wątpię ale można bardzo szybko napisać to samemu. Wystarczy dzielenie i modulo.
A spróbuj wstawić zamiast przecinka kropke?
jak najprościej wykonać obliczenie zmiennoprzecinkowe (z dzieleniem) na liczbach uint8_t, tak aby wynikiem także była liczba uint8_t? Wcale nie musisz wykonywać dzielenia na zmiennoprzecinkowych :wink: wystarczy że zrobisz np: tak: uint8_t a; uint16_t b; b=(20*10)/3; b*=10; a = b/10; Zasada jest taka żeby "przesunąć" przecinek z ilorazu w prawo...
NIe mam przed sobą pdf'a DS18B20 ale z tego co pamiętam wyglądało to tak: odczytujesz dwa bajty z czujnika LSB i MSB. Z pierwszego bierzesz 4 starsze bity (czyli 4 młodsze pomijasz), przesuwasz o 4 miejsca w prawo i dodajesz do całości drugi bit. Nie wiem jak to będzie wyglądać w BASCOMIE ale powinieneś dać sobie radę. W tych wszystkich obliczeniach...
x*6/10 W otrzymanej liczbie przecinek stawiasz po cyfrze dziesiątek ------ Dokładniej #define TOP_X 0xFFFF / 6 void show_pos(char* pos_str){ char buffer[6]; unsigned int x = atoi(pos_str); x = (x>TOP_X)? (x/10)*6 : (x*6)/10; i_to_str_mit_przecinken_w_srodku(buf... x); lcd_puts(buffer);...
Zaoszczędziłem 32bajty. A teksty z lini: 45, 47, 304, 373, 477, 517, 519, 566, 568, 614, 616, 663, 665, 713, 715, 761, 763, 798 dlaczego nie są w Eepromie :)? Możesz wykasować spacje w łańcuchach i zmodyfikować początek Display_msg. Te wszystkie sztuczki pozwolą ci zaoszczędzić parę bajtów , ale największe oszczędności przyniesie ci rezygnacja z liczb...
a) a jak chcesz cokolwiek zrobić żeby pominąć przecinek b) jeśli odpowiesz że po wykonaniu obliczeń chcesz pominąć za przecinkiem to dlaczego nie dzielić przez 1000h, i do czego taka dokładność??
Aktualizacja o samą paczke z językiem angielskim do U8130 i w tym poście będe dodawał do następnych modeli, chociaż myśle że wystarczy abyście przetłumaczyli do U8130 a do reszty na podstawie tego się wrzuci, teraz o wiele łatwiej można tłumaczyć. A jeżeli chodzi o wkompilowanie tego później to już mój problem, wystarczy abyście wy przetłumaczyli ;)...
Błędy były gdzieś w procedurze wyświetlania. Wyrzuciłem ją i tak jak radził BlueDraco wyświetlam przecinek między ostatnimi liczbami. A wartość mnożę i dzielę przez 10.
Jeżeli w sterowniku masz liczbę całkowitą to zamiana na liczbę zmiennoprzecinkową nic ci nie da bo zamiast 20 otrzymasz 20,0 a z 21 otrzymasz 21,0. Co to za poprawa ? Chyba że dla 21 ktoś w sterowniku wpisał 210 a dla 21,5 wpisał 215. Wtedy na SCADZIE albo przesuwasz przecinek albo zamieniasz na float i dzielisz przez 10. Chyba że źle ciebie rozumiem...
Nie wiem, co dzieje się z Twoim komputerem, ale u mnie wyniki są całkiem poprawne. http://obrazki.elektroda.pl/9373254200_1... Jeżeli wynik wychodzi ci zero, to znaczy, że najprawdopodobniej nie podajesz poprawnie 'znaku' działania i żadne z obliczeń nie są wykonywane. Kolejną strawą, jest formatowanie wyniku. Jedno co powinieneś zmienić,...
Poza tym warto się zastanowić czy konieczne jest korzystanie z typów float do tak prostych celów??? Przecież w 100% można się obejść bez nich robiąc proste działania na liczbach całkowitych. W zależności od tego ile masz miejsc po przecinku w temperaturze to przez tyle pomnożyć liczby składowe w tym działaniu. Np jeśli będą dwa miejsca po przecinku...
Dzięki za odpowiedź ale nim wpisałem pytanie na Elektrodę to sporo męczyłem się z tym (przesuwanie przecinka, mnożenie, dzielenie) ale niestety bez rezultatów. W bascomAVR jest polecenie "Round" ale ono zaokrągla wynik do liczby całkowitej i tym samym odpada. Może jest jeszcze jakieś polecenie coś w rodzaju formatowania wyniku, którego jeszcze nie znam/znalazłem...
No to właściwie się każdy nada do tego celu. Najprościej jest zapisać liczby w układzie dziesiętnym: jedna komórka pamięci jedna cyfra. Dodatkowa komórka do pamiętania znaku i jeszcze jedna do pamiętania położenia przecinka. Muszą być takie dwa zestawy dla obu wprowadzanych liczb. Przed dodawaniem i odejmowaniem przesuwasz jedną liczbę tak by przecinki...
Też się męczyłem z tym problemem ale dla wyświetlacza z Noki. Pomogła biblioteka Mirf . Z takim problemem spotkałem się pisząc program w Eclipsie ( język C). Z tego co kojarzę to mnożyłem przez 100 ( dwa miejsca po przecinku) i dzieliłem ponownie . Wyszły całości i ,miejsca po przecinku. Dokładnie to ci nie powiem ale jest to gdzieś na blogu Mirka Kardasia...
Witam. Jak masz liczbe sekund np. 213456 to najpierw dzielisz ją na 60 i otrzymujesz minuty, potem to co po przecinku razy 60 i masz minuty i sekundy. Minyty dzielisz przez 60 i masz godziny, to co po przecinku razy 60 i masz reszte minut. Godziny dzielisz przez 24 i masz dni itd. np. 213456 [sek] 213456/60=3557.6 [min] 0.6*60=36[sek] czyli mamy już...
Witam Mam pytanie jak mogę podzielić string-a, a dokładnie chodzi mi o następującą rzecz: dana = "Anna, Mariola, Ewa, Ulka" Ania - ma być pierwszą zmienną np. dana1 Mariola - ma być drugą zmienną np. dana2 Ewa - zmienna dana3 Ulka zmienna dana4 Jak w stringu szuka się przecinka i on ma dzielić na pozostałe zmienne. dziękuję
Nie mam pojęcia co to ciąg harmoniczny, więc jak coś to napiszcie, żebym skasował ten post :D Jeżeli wynik ma nie wychodzić 0, to musi wychodzić z przecinkiem, a tego do int nie przypiszesz. A jeżeli chcesz z dzielenia int otrzymywać np wynik double, czyli po przecinku to np możesz najpierw do zmiennej a przypisać wartość z dzielenia intów, potem do...
Witam, Mam kod który działa bez problemu, ale co w nim zmienić, żeby dzielił Średnikiem ; , a nie przecinek. Dim MyPath As String Dim MyFileName As String Dim x As Integer Dim rCell As Range MyPath = "F:\HURT\ZAM\Zamcsv" MyFileName = "A" While Len(MyFileName) < 7 - Len(Sheets("Zamówienie"...
witam juz wszystko jasne, faktycznie pytanie bylo troche bez sensu. O ile sie nie myle, sparawa wyglada tak: - jezeli chcemy syganl przeslac wiekszej lub mniejszej dokladnosci wystarczy tylko przesunac przecinek w prawo lub w lewo a co za tym idzie sygnal musimy pomnozyc lub podzielic o dana liczbe bitow. (przykladowo jesli przesuwamy przecinek o 2...
Przy tak dobranym F_CPU lepiej będzie użyć wyrażenia drugiego. Co do używania liczb całkowitych: pierwotnie miałeś w wyrażeniu "1000000.0", co powodowało, że część wyników pośrednich była by z przecinkiem a więc i wynik końcowy by był. Teoretycznie kompilator powinien to policzyć, jednak nie chciał (może wyłączona optymalizacja?). Jednak jeśli zamienisz...
Może nie to co chciałeś. Tu są pocedury mnozenia,dzielenia,dodawania,odejmowania dwóch liczb z dowolną dokładnością. Liczby zapisane sie jak wykładnik + mantysa Pozwalają na wykonanie kalkulatora z wszystkimi funkcjami.liczby z zakresu -1*10 do 63 1* 10 do 63 realna dokładnosc to 28 miejsc po przecinku
kokosss12, w 30 na pewno nie jest int. Dzielisz 7/5 i wychodzi Ci liczba po przecinku, a więc będzie float, odpowiedź C.
Dokładnie tak. Kompilator wykonuje dzieleni całkowite, stąd problem. Swoją drogą, po co ładować float i specjalną wersję sprintf dla tak prostej czynności? Nie prościej pomnożyć result*1000 i podzielić przez 8192, wykonując operację na liczbach całkowitych? Na koniec tylko odpowiednio wyświetlić przecinek i cała operacja jest o jakieś 7kB krótsza i...
cyt "... sumuję 16 pomiarów i później dzielę przez 16") zapewne dalej w programie jest dalsze przeliczanie - dzielenie aby uzyskać stopnie celzjusza. POLECAM nie dzielić dwa razy, tzn zrezygnować z dzielenia przez 16, tylko podzielić RAZ na końcu. Dzięki temu, powstaje oversampling, dzięki czemu bez kosztów zwiększamy rozdzielczość jak i dokładność...
udało mi się chyba, za moment edytuje post i wkleje iterator dzielący na ilośc miejsc po przecinku. W sumie to zwykłe dzielenie jakie wykonuje ludzki mózg tylko przełożone na procesor.
Witam !!! Jeżeli piszesz w C to jaki masz problem z dzieleniem ? Możesz użyć zmiennych typu float i wynik z przecinkiem masz gwarantowany. Kolejne rozwiązanie to użycie operatorów /-dzielenia i %-reszty z dzielenia. Jeżeli chcesz już przesówać to co napisałeś nie informuje kompilatora gdzie ma zwróciś wynik. int suma; suma=suma << 1; (M.)
początkuje w programowaniu i robie zasilacz sterowany cyfrowo. wszystko mi chodzi od ustawiania napięcia ,ograniczenia pradowego jak i przetworników ADC. zostało mi tylko napisać procedure do obsługi tego nieszczęsnego LCD.wszystkie pomysły jakie mi przychodza do głowy wymagaja dzielenia (ewentualnie mnożenia z przecinkami) i jak na razie siedze nad...
dziel FFFFFFFFFFFFF000 przez 00000AAAAAAAAAA - ucierpi nieco dokładność, ale jest to do wykonania na 64 bitach ALU. Wynik przesuń o 6 w prawo (otrzymasz 6 miejsc binarnych po przecinku, oczywiście przesunięcia dokonujesz modyfikując cechę wyniku). Generalnie dzielenie np liczb 32 bitowych na FPU odbywa się w rzeczywistości z wykorzystaniem 96 bitów,...
nie wiem co masz na myśli że podając km to zapisuje się w zmienną w metrach Chodzi o to, że zapis zmiennoprzecinkowy ma swoje problemy (przykładowo, float 0.1 + float 0.2 nie jest równy float 0.3). W takich małych układach jest przede wszystkim bardzo kosztowny (obliczeniowo) - a przy tym zupełnie zbędny. Bo nigdy nie osiągniesz precyzji 0.0000001...
Dziękuję bardzo a czy macie jakiś pomysł na przecinek ? Ponieważ na przycisku ',' daję Proszę pamiętać o używaniu znaczników syntax . Opcja Listing kodu . - arnoldziq
Nie ma za co. To może ja opiszę jak rozszyfrować ID i odczytać z niego datę. Dwie pierwsze cyfry dodajemy do 1990 i otrzymujemy rok uruchomienia. Trzy ostatnie dzielimy przez 30. Cyfra po przecinku jest dniem uruchomienia, a do jedności dodajemy 1 i otrzymujemy miesiąc. Pozdrawiam
Dzielenie przez 16 to to samo co przesuwanie bajtu w prawo o 4. Czyli jest to wywalenie jakby 4 najmłodszych bitów, czyli odczyt temp będzie z dokładnością do 0,5 stopnia. Zajrzyj do notki. 5 najstarszych bitów to znak czy dodatnia czy ujemna, a 4 najmłodsze oznaczają miejsca po przecinku. Rozumiem ze zmiana z systemu binarnego na dziesiętny jest znana?...
Mnożysz razy 100 obcinach część ułamkową i dzielisz przez 100
1wreset If Err = 0 Then 1wwrite &HCC 1wwrite &HBE Ds_1 = 1wread() Ds_2 = 1wread() Status_temp = 1 If Ds_2 >= 248 Then 'wartość ujemna Ds_1 = 255 - Ds_1 Ds_2 = 255 - Ds_2 Status_temp = 0 End If T1 = Ds_1 / 16 T2 = Ds_2 * 16 T1 = T1 + T2 ten fragment odczytuje czujnik i pod zmienną T1 umieszcza wartość tempreatury (z pełną rozdzielczością...
Jest mozliwosc dzielenia 32bit/24bit albo chociaz 24bit/24bit na 89S52(nie wiem czy styknie 8 rejestrow 8bit)?? Ma ktos moze namiary na taki algorytm?? Troche dokladniej: mam dziesietnie 20 000 000 i dziele to przez liczby od ok 2000 do 4 000 000. Nie da sie tego uproscic czy cos?? :lol: Nie potrzebuje wyniku po przecinku(reszty).
A nie prościej mnożyć niż dzielić i to jeszcze z przecinkiem. aby otrzymać 18800 = 0x4970h / 0x02F0h = 0x19h I teraz: 0x02F0h x 0x19h = 0x4970h = 18800 0x02F1h x 0x19h = 0x4989h = 18825 0x02F2h x 0x19h = 0x49A2h = 18850 0x02F3h x 0x19h = 0x49BBh = 18875 Lepiej operować na liczbach całkowitych, szczególnie w C. Przecinek wyświetlić to nie problem. Tym...
Osobiscie to mam zastrzezenia co do tego kodu kalkulatora Bo bedzie on dzialal tylko na calkowitych ! wpisanie 1.2 + cos tam "wywali" program bo jesli bedziemy wczytywac cin int to przerwie wpisywanie pierwszego inta po napotkaniu kropki bo cin potraktuje kropke jako koniec inta Potem wczyta ze strumienia chara czyli kropke a potem wyjmie znowu inta...
faktycznie ale to uciążliwe po kazdej liczbie pisać przecinek. ;)
Można to zoptymalizować i nie przeliczać na Volty w ogóle, ale tak bedzie prościej zobrazować. Jeśli napięciem odniesienia jest AVCC to znaczy że 5V trzeba teoretycznie podzielić przez rozdzielczośc 1024 i wyjdzie 0.00488 no i to się często zaokrągla do 0.0049 Teraz żeby odczytać napięcie wystarczy pomnożyć odczytany wynik przez te 0.0049, ale to wymusza...
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,...
A czego się spodziewasz po dzieleniu liczb całkowitych? Algorytm działający na floatach jest dalece bardziej skomplikowany. Możesz się posiłkować mnożąc resztę z dzielenia przez stałą, np. 10, 100, 1000 itd i ponownie dzieląc, uzyskasz wtedy kolejne cyfry po przecinku. W ten sposób odkryjesz arytmetykę stałopozycyjną.
i jeszcze jedno mógłbyś mi powiedzieć dlaczego skoro zmienne się nie zmieniają napisałeś zwrot przez referencję? Jeśli wewnątrz funkcji nic z tymi zmiennymi nie robisz, to po co tworzyć ich lokalną kopię? Oczywiście tu te 2 czy 4 bajty w te czy we wte nie robią żadnej różnicy, ale chodzi o zasady. Pytanie brzmi dlaczego kompilator tego nie wyłapał...
Niestety o ile dobrze kojaże, w C mamy do dyspozycji tylko dwa typy zmiennych dla liczb zmiennoprzecinkowych - wspomniany float oraz double (8 bajtów, 15 miejsc po przecinku), w razie w long double, ale to nie to czego szukasz. Tak więc prostszego od float typu nie znajdziesz. Natomiast istnieje kilka innych rozwiązań dla liczb zmiennoprzecinkowych,...
O już chyba wiem. Nie rób mnozenia przez liczbę z przecinkiem tylko dzielenie. Ty masz 0.000016*licznik i potem to dzielone przez 60. Ten sam wynik będzie jak dasz tak: 3750000\licznik i to samo masz w jednym równaniu bez używania przecinków(to w baskomie działa bardzo wolno) a dlaczego akurat tak? No bo broty(np 1000) = 16,67imp/sek=imp co 0,06 sek...
Hmm no tak naprawdę to problem jest w tym iż nie mam zielonego pojęcia w jaki sposób uzyskać liczbę zmiennoprzecinkową w sterowniku Fatek'a. Może faktycznie źle opisałem mój problem.. Ale z tego co rozumiem to jaki problem w tym, żeby zliczać łączny czas pracy a następnie przemnożyć przez to 0.4 galona? Oj ja bardzo chętnie bym tak zrobił i tak też...
Witam !! Potrzebuje policzyć wartość skuteczna napiecia sinusoidalnego. Sygnal (50hz) podaje na 12bitowy A/C i nastepnie wyliczam go wegług Usk= √1/n * ∑ U_{sk} = \sqrt{\frac{\sum_{1}^n - chodzi Tobie o ten wzór ? Jest kilka metod (Herona, Newtona - powinno być w dobrych tablicach matematycznych). Mi najbardziej do gustu przypadła metoda...
1. Bardzo fajna konstrukcja, mam tylko wątpliwości co do sposobu przedstawiania wartości na wyświetlaczu (górny wiersz) - rozumiem, że te kropki w zamyśle pewnie miały oddzielać grupy trzycyfrowe - na filmiku w jednej liczbie są pokazane dwie kropki - i nie wiadomo gdzie jest "przecinek dziesiętny" - część całkowita i ułamkowa. To jest mylące... Może...
Zaokrągla (ale tylko przy wyświetlaniu), kiedy w komórce liczba się nie mieści (np.: jest liczba 1,36 a w komórce daje się wyświetlić 2 pozycję, to będzie wyświetlone 1,4) lub w formacie komórki jest określona ilość pozycji po przecinku do wyświetlenia. Pozdr!
a ja do minusów doliczył bym jeszcze dzielenie esemesa na fragmęty wtedy kiedy wysyłamy tekst z polskimi znakami lub nawet z przecinkami:-(
Dziękuje za pomoc, rzeczywiście wzór którego używałem był błedny. Do konwersji na string używam funckji itoa(); Zastanawiam się czy da się jakoś wyświetlić przecinek z infromacji które przesyła ten układ czy trzeba kombinować z dzieleniem przez 10 i ręcznym wstawianiem znaku "." ?
Funkcja RoundDown ma dwa argumenty, tak, jak jej odpowiednik w Excelu, przy czym wynik tego zaokrąglenia musisz jakoś wykorzystać - gdzieś przypisać czy coś. Argument powinien wynosić 0, nie -1 (jeśli chcesz przemnożyć to potem przez 100), albo -2, jeśli chcesz ten krok pominąć. Natomiast w VBA z dzieleniem bez reszty jest jeszcze prościej, bo można...
Myślałem że pytasz o coś innego. Bo bardzo dziwnie zapytałeś. Myślałem że pytasz o to dlaczego "dzieli wynik się" (tak jak by wynik sam się dzielił mimo że go o to nie prosisz). A nie o to dlaczego należy go dzielić. Bo dlaczego należy go dzielić to wiem :D Po prostu na 4-rech najmłodszych bitach masz wartości za przecinkiem. 4-ry bity czyli 16-cie...
Poszukaj jakiejś bramki SMS którą można zaimplementować na stronę internetową. Chociaż nie wiem czy będzie miała opcję podziału SMS na kilka rubryk tak jak chcesz (data, godzina, liczba osób itd.). No chyba że chce się koledze bawić i oskryptować, np. w PHP, jakoś opcję sumującą wszystko do jednego SMS-a i dzielenie tego jakimś separatorem, np. przecinkiem,...
Najprościej zrobić to tak: wyliczasz napięcie z proporcji, ale nie do 20 tylko do 2000. Następnie dzielisz to przez 100 a wynik zapisujesz do liczby całkowitej - masz to co przed przecinkiem. Potem mnożysz to przez 100 i odejmujesz od pierwotnego napięcia - masz to co po przecinku. Wyświetlasz tak jak napisałeś. LCD przed_przecinkiem;",";po_przecinku;
Jak chcesz zaokraglac do calkowitych to po co ci floaty, a jak chcesz zaokraglac floaty to np %.2e - dwa znaczace znaki po przecinku. Poszukaj sobie dokumentacji do formatowania printfa.
...Jednak nadal pozostaje kwestia tych dziwactw... dlaczego zamiast 40st mam 0A ? czyżby to dzielenie temp/10 i temp%10 było nieakuratne? W ostatnim poście napisałem: PS Sposób w jaki obliczasz odczytaną temperaturę , też mi sie wielce nie podoba , bo wykonujesz przesunięcie w prawo na typie signed char , a to nie to samo co na unsigned char ... ....
Dziękuję za pomoc. Formatowanie niestandardowe 0,00000;-0,00000; rozwiązuje mój problem. Ponieważ w wyniku dzielenia zera przez jakakolwiek liczbę zawsze wyjdzie mi równe 0.
Witam Chciałem oprócz samej temperatury mieć również obliczoną średnią. Dane są w postaci bajtowej ( bajt dziesiątki/jednostki + bajt tego co po przecinku. Więc dodaje osobno wartości przed przecinkiem, osobna zmienna wartości po przecinku, mnożę pierwszy razy 10 i dodaje to co po przecinku, później dzielę przez dwa. Napisałem coś takiego: [syntax=vbnet]...
Chyba nie czytałeś ostatnio tego rozdziału z Language Fundamentals. W ten sposób sam sobie robisz kuku... Pomijając to myślę, że jeśli te Twoje zmiennoprzecinkowe masz tylko do dwóch miejsc po przecinku, to dlaczego, po prostu, nie pomnożysz tego x100 a na końcu wyniku nie podzielisz /100? Zapewne wszystko się wykona dużo szybciej niż na tych zmiennoprzecinkowych....
???? Mieszasz hex z dziesiętnymi Żadnych if-ów Format to po prostu xxxxxxx.xx bez kropki. Potrzebujesz więcej miejsc po przecinku znieniasz wartosć przez którą dzielisz. Chcesz pomnożyć przez 0.01 to mnożysz przez jeden przez .1 to przez 10. przez 0.15 to przez 15 przez 2.55 to 255. Jaki problem? To jest uproszczona reprezentacja stałopozycyjna. Rzeczywiście...
Wg. mnie pomysl skalowania jest dobry ale problem jest w zdefiniowanych formatach liczb, bo podana wartosc 27648 to chyba INT, a MD30 to FloatigPoint. Musisz miec ten sam format liczb - tak mi sie wydaje. Jeśli piszesz w STL i nie zdefiniowałeś w DataTable tych zmiennych (czyli operujesz tylko na MD20, Md30 itp. to kompilator domyślnie przyjmie prawidłowe...
ds18b20 przecinek wyświetlać przecinek przecinek monitor
kondensatory 1000uf mikrofalówka zabudowy szukanie usterki instalacji
klejona matryca klejona matryca
Czy statecznik metahalogenowy działa z lampą rtęciową? Warystor 275V w zasilaczach: ochrona przed przepięciami