Przejdź do głównej zawartości

Kalkulator CASIO fx-82ES PLUS i drażniący problem konwersji między systemami liczbowymi.

Jeśli już ktoś, kto zajmuje się informatyką i elektroniką cyfrową, decyduje się na zakup kalkulatora - często takie urządzenie bywa przydatne, a jak ktoś jest inżynierem, to posiadanie kalkulatora staje się nieodzowne (kalkulator to atrybut inżyniera) - chciałby, żeby jedną z jego podstawowych funkcjonalności była konwersja DEC->BIN->HEX->OCT->... A ponieważ tę funkcjonalność posiadają praktycznie wszystkie kalkulatory oznaczone napisem "scientific", nawet te bazarowe, zakupiłem kilka miesięcy temu wspomniany w tytule model, przejrzawszy wcześniej z grubsza jego funkcje. Właśnie - z grubsza. Okazało się, że kalkulatorek, który prowadzi obliczenia w zapisie naturalnym i jest naszpikowany wieloma funkcjami - w tym statystycznymi, potrafi obliczać wartości zadanej funkcji f(x) dla określonego przedziału x... nie ma wspomnianej konwersji!!! Miód po prostu... W pracy trzymam kalkulator za 12zł, który tę funkcjonalność posiada...
No ale trzeba sobie radzić. Oczywiście można dzielić sobie liczbę dziesiętną przez podstawę systemu docelowego, spisywać reszty z dzielenia itd. - znany algorytm. Ale do tego to w sumie kalkulatora nie trzeba - wystarczy kartka i ołówek. Odpada. Coś innego trzeba wymyślić...
I tak dziś, wykonując jakieś drobne obliczenia na tym wypas-kalkulatorze, przypomniał mi się problem konwersji i wymyśliłem sposób. Otóż jest w tym urządzonku wspomniana wcześniej funkcja obliczająca wartości f(x) dla pewnego przedziału x (x zmienia swoją wartość z zadanym krokiem). Wystarczy napisać funkcję, której wartości będą resztą z dzielenia x przez podstawę systemu liczbowego (testowałem na systemie binarnym, czyli 2), potem z uzyskanej tabelki spisać te wartości, które nas interesują (patrz: wspomniany wcześniej, popularny algorytm) i - voila! Mamy liczbę przekowertowaną!
A oto szczegóły:
  1. przełączamy kalkulator w tryb TABLE
  2. ustalamy liczbę miejsc dziesiętnych (FIX) na 0 - żeby funkcja Rnd zaokrąglała do wartości całkowitych
  3. funkcji, z której będziemy uzyskiwać wyniki, nadajemy postać f(x)=-(x-2Rnd(x/2)) - minus przed nawiasem, bo Rnd zaokrągla w górę, czyli np. 0,5 -> 1
  4. przedział dla x ustalamy od 0 do 12 (liczba, którą konwertujemy), z krokiem 1
  5. uruchamiamy proces i odczytujemy tabelkę :)
Podsumujmy więc:
  • zalety rozwiązania - bo jest to jakieś rozwiązanie problemu.
  • wady - sztuka dla sztuki, konieczność wspomagania się kartką, konwersja niewielkich liczb ze względu na ograniczoną pojemność pamięci kalkulatora...
No ale zawsze można się pobawić. Ot na przykład sprawdzić, jak kalkulator poradzi sobie z konwersją DEC->HEX :)

Inna rzecz, że gdyby się głębiej zastanowić, w konwersji DEC->BIN wystarczy tylko kartka i pisadło, nawet liczyć nie trzeba (nie wspomnę o konwersji niewielkich liczb w pamięci)...

Komentarze

Popularne posty z tego bloga

Niesamowicie prosty czujnik zmierzchowy.

Tym razem zero programowania, będzie natomiast nostalgiczno-wspomnieniowy układzik, lekko zmodyfikowany.
Otóż kilka dni temu rozmawialiśmy w gronie znajomych o różnego rodzaju czujnikach zmierzchowych i czujnikach ruchu. Ponieważ należę do tych wariatów, co to hołdują jeszcze owej przestarzałej i kompletnie odrealnionej dziś zasadzie: "po co kupować, gdy można zrobić", stwierdziłem, że poskładam takie coś (czujnik zmierzchowy; sensor ruchu faktycznie lepiej nabyć, choćby ze względu na rozmiary ;)) i być może podłączę do jakiegoś mikrokontrolera. Przypomniało mi się też przy okazji, że znalazłem ostatnio w elektronicznych śmieciach stary fotorezystor (dla niewtajemniczonych: element zmieniający rezystancję, czyli opór elektryczny, pod wpływem działania strumienia światła) RPP130, jeden z kilku pozostałych po montowanych wieki temu układach tranzystorowych do zdalnego sterowania pracą urządzeń za pomocą latarki... No OK, nie było to specjalnie rozbudowane zdalne sterowanie ;)

Android i zewnętrzny moduł GPS

Od kilku dni jestem w posiadaniu smyrfona z Androidem 4.1.1 na pokładzie. Kwestie związane z wyborem systemu roztrząsałem już na G+, a ten artykuł tutaj ma konkretny temat, więc nie będę wyjaśniał po raz n-ty. Po prostu zwyciężyły popularność i ekosystem oraz przywiązanie do produktów sieciowych Google. Mniejsza.

Zbliża się sezon urlopowy :-) Moi podopieczni już mają wakacje, a ja wyjeżdżam wkrótce. W każdym bądź razie wakacje to podróże - samochodem, rowerem, na piechotę, żaglówką, motorówką, samolotem... Zaawansowane urządzenia mobilne przyzwyczaiły nas już do usług lokalizacyjnych, z których najważniejszą jest GPS (na dalszym planie mamy A-GPS, lokalizacje w oparciu o sieci WiFi itp.). Często korzystamy z programów, które w coraz ciekawszy sposób wiążą naszą lokalizację, pobraną z np. GPS-a, z przeróżnymi danymi, nieraz ocierając się o AR.
Każdy współczesny smartfon, a przynajmniej znakomita ich większość, wyposażona jest we wbudowany odbiornik sygnału lokalizacyjnego (GPS, GLONASS…

Po co mi to całe Arduino?

Oczywiście tytuł ma być jedynie prowokacją. Chociaż nie do końca - artykuł jest właśnie poświęcony pracy w Arduino IDE z mikrokontrolerami, ale bez płytek Arduino.
Czym jest Arduino - wiemy wszyscy, zarówno początkujący fani programowania elektroniki, jak i zaawansowani mikrokontrolerowcy. Jeśli jednak nie do końca wiemy, zachęcam do odwiedzenia strony domowej projektu (link 5 na końcu artykułu) oraz zerknięcia np. w poradnik (link 4).

Jakiś czas temu, przełamując się i zmieniając zdanie ("o 180 stopni" ;-)) nabyłem sobie Arduino Leonardo, głównie w celu jego "obwąchania" i zapoznania się z bogatym zbiorem bibliotek dostępnych dla tej platformy. Zgoda, różne biblioteki są dostępne niezależnie od Arduino, ale i tak się zdecydowałem. Dlaczego Leonardo? Otóż miałem ochotę przyrządzić dwie pieczenie na jednym ogniu - mieć Arduino i przetestować ATmegę 32u4. Dziś doskonale zdaję sobie sprawę, że żeby pobawić się Arduino nie trzeba go w ogóle posiadać... Ale po kolei.

Pi…