Ads_700x200

środa, 5 marca 2014

Liczby BINARNE - PODSTAWY

Witam,

to kolejna mała seria hmm cykl mini poradników ale dla totalnie początkujących a może nawet dla osób, które w ogóle nigdy nie mają zamiaru programować czy też zajmować się elektroniką itp. Za to w szkole mają zajęcia na temat liczb binarnych i muszą zrozumieć o co chodzi, muszą nauczyć się ich konwersji na liczby dziesiętne a także w drugą stronę. Tego tematu nie poruszałem w mojej niebieskiej książce (Bluebooku) ponieważ wydawał mi się zbyt oczywisty, no i myślałem że KAŻDY zna tak prosty sposób na posługiwanie się konwersją liczb binarnych. Tymczasem w wyniku wielu próśb od czytelników i początkujących a także w wyniku sprawdzenia chociażby kilku pierwszych lepszych poradników w internecie czy też podręczników do gimnazjum, okazuje się - że temat ten można podać albo w strasznie (jak dla mnie i dla wielu pewnie) trudny sposób - czyli tylko czysta teoretyczna matematyka z mnóstwem działań, potęgowaniem, mnożeniem, dzieleniem, dodawaniem i odejmowaniem - podczas gdy można to (tak mi się wydaje) pokazać prościej a przede wszystkim PRAKTYCZNIE. W praktycznym zastosowaniu ... na ciekawych przykładach a nie tylko teorii - co może spowodować że sposób obliczeń matematycznych trafi o wiele lepiej i łatwiej do każdego, podkreślam każdego ucznia ;) i nie tylko ucznia. Bo z tego co mi wiadomo z maili na naukę informatyki i programowania NIGDY nie jest za późno i wielu moich czytelników rozpoczyna tą przygodę w bardzo zaawansowanym wieku z czego się bardzo cieszę i jest mi nawet bardzo miło - że to odbywa się również dzięki mojej niebieskiej książce, że udaje mi się zarażać tą tematyką osoby bez żadnego podziału na kategorie wiekowe ....



zapraszam na pierwszą część mini poradnika - o konwersji binarnej do decymalnej ;)


drugi mini odcinek o konwersji dziesiętnej do binarnej



;)

16 komentarzy:

  1. Wyszło mi CC w HEX i ╠ w ASCII ;-)

    OdpowiedzUsuń
  2. Francja, elegancja, dziękuję

    OdpowiedzUsuń
  3. Konwersje w tą stronę pamiętam jeszcze z działań na Spectrum i zabawą z układami z serii UCY74xxx, ale w odwrotną t już zapomniałem. Czekam na przypomnienie w odwrotną stronę :)

    OdpowiedzUsuń
  4. Super metoda. Teraz jestem jak uP . Wielke dzieki za poradnik.

    OdpowiedzUsuń
  5. Do tej pory myślałem, że najłatwiejszą metodą jest dzielenie przez podstawę systemu czyli w tym przypadku 2 a jednak jest jeszcze prostsza i szybsza metoda. DZIĘKI WIELKIE.

    OdpowiedzUsuń
  6. Panie Mirku czy pojawią się zestawy uruchomieniowe w sklepie? Bo od dłuższego czasu prawie nic nie można kupić. Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Już od tego poniedziałku lub wtorku pojawi się niewielka partia zestawów, proszę obserwować sklep internetowy.

      Usuń
  7. No Panie Mirku jak wytłumaczy mi Pan zapis liczb ujemnych, ułamkowych, i ujemnych ułamkowych to będzie Pan Gość :) Pozdrawiam.

    OdpowiedzUsuń
  8. Książkowa metoda książkową, a ja i tak używam tej, którą tu Pan
    Mirek przedstawił.
    Życie trzeba sobie ułatwiać.Takie jest moje zdanie.
    Świetny poradnik.
    Panie Mirku, czakamy na kolejne "skróty" bin->hex->bin.
    Pozdrawiam,Piotr.

    OdpowiedzUsuń
  9. Witam ,chciałbym wyświetlić czas na LCD i potrzebuję zamienić zmienne "godziny" ,"minuty" ,"sekundy" na DEC ,bo mam taką funkcję biblioteczną wyświetlającą cyfrę dziesiętną.

    zmienne są typami uint_8.

    Jakiego polecenia użyć ,bo chyba się trochę zakręciłem i nie do końca rozumiem ,pozdrawiam.

    OdpowiedzUsuń
    Odpowiedzi
    1. Tobie pewnie chodzi z kolei o kodowanie BCD ;) ... to jeszcze nieco inny standard zapisu liczb .... ale masz przykłady na to w mojej niebieskiej książce przecież :

      http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

      posiadasz już ją może ?

      Usuń
  10. Tak ,patrzałem strona 284 ,ale jest tam jeszcze jakiś uint8_bufor[3] ,którego nie za bardzo rozumiem. Możesz wyjaśnić.

    OdpowiedzUsuń
    Odpowiedzi
    1. Jak już to

      uint8_t bufor[3]

      jest to bufor właśnie na sekundy, minuty i godziny, do wczytywania z RTC albo do zapisywania do RTC. Po prostu 3 bajty po kolei w pamięci RAM.

      Usuń
  11. czyli nie musze go stosować ,moge tym poleceniem zamienić zmienna na inna zmienna dec i od razu wyswietlic na LCD. Tak na raty kazda po kolei ,np. zmienna "sekundy" -> polecenie konwersji "sekundy_dec" , (druga zmienna) ,nastepnie poleceniem LCD wyswietlić "secundy_sec"

    sekundy = bcd2dec (sekundy_dec);
    Lcd(.....funkcja wyswietlająca znak DEC)


    Rozumiem ,ze nie ma opcji ,by zamienić sekundy na sekundy_dec ,bez dodatkowej zmiennej typu własnie bufor lub jakas temp.

    Taki zapis byłby błedny?

    sekundy = bcd2dec( sekundy);
    Lcd(.....funkcja wyswietlająca znak DEC)

    OdpowiedzUsuń
  12. Metoda jest świetna. Pamiętam jeszcze ze szkoły jak się tego uczyłem i była to czarna magia. Teraz pracuję jako konserwator żurawii i uczę się programowania dla kaprysu. Jednak dzięki panu panie Mirku wydaje mi się to tak proste, że widzę nawet miejsce na zastosowanie mikrokontrolerów w mojej pracy. Pozdrawiam.

    OdpowiedzUsuń