eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaPoczątek zabawy z bascomemRe: Początek zabawy z bascomem
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.PO
    STED!not-for-mail
    From: Michoo <m...@v...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Początek zabawy z bascomem
    Date: Tue, 08 Feb 2011 22:41:36 +0100
    Organization: http://onet.pl
    Lines: 43
    Message-ID: <iisdab$75b$1@news.onet.pl>
    References: <4d510385$0$2437$65785112@news.neostrada.pl>
    <iirssc$rmg$1@inews.gazeta.pl> <iirtvb$7o5$1@news.onet.pl>
    <iis4f2$crp$1@opal.futuro.pl> <op.vqlpstzr1cvm6g@jk-laptop>
    <iisafo$r9r$1@news.onet.pl> <op.vqlsg11i1cvm6g@jk-laptop>
    NNTP-Posting-Host: smaug.int.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1297201291 7339 83.238.197.12 (8 Feb 2011 21:41:31 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Tue, 8 Feb 2011 21:41:31 +0000 (UTC)
    User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.16) Gecko/20101227
    Icedove/3.0.11
    In-Reply-To: <op.vqlsg11i1cvm6g@jk-laptop>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:604433
    [ ukryj nagłówki ]

    W dniu 08.02.2011 22:25, janusz_kk1 pisze:
    > Dnia 08-02-2011 o 21:53:16 Michoo <m...@v...pl> napisał(a):
    >
    >> W dniu 08.02.2011 21:27, janusz_kk1 pisze:
    >>> Dnia 08-02-2011 o 20:10:26 Lelek@ <n...@n...pl> napisał(a):
    >>>> Ale co jest w C takiego trudnego? Przecież to jest intuicyjny język.
    >>> Jasneeee :)
    >>> Tak na szybko ci znalazłem:
    >>> c_size_mul = ((MMC_Data_16[9] & 0x03) * 2) + ((MMC_Data_16[10] >> 7) &
    >>> 0x01);
    >>> powiesz mi zgłowy co się w jakiej kolejności robi?
    >> Co robi widać na pierwszy rzut oka. Kolejność jest nieistotna i może
    >> się zmienić.
    >
    >>
    >>> N o ile ci to zajęło?
    >> Z 1.5 .. 2 sec?
    > No to co najmniej o 1,5sek za długo, pomyśl teraz że takich linijek masz
    > wiecej, tracisz dużo czasu na analizę, przy prostym kodzie analizujesz
    > kilkakrotnie szybciej.
    Składanie wartości binarnej leżącej w dziwnym miejscu nie jest "proste"
    samo w sobie.

    Przy "prostym" kodzie zapisanym równie nieintuicyjnie byłoby gorzej -
    trzeba by przeanalizować kilka linii, pojąć ich sens a potem pojąć sens
    całości. No chyba, że dasz przykład takiego "prostego" kodu?

    >> Chociaż dłuższa analiza pozwala się oczywiście zastanawiać czy *2 nie
    >> powinno być dla konsekwencji zapisane jako przesunięcie binarne
    > Kompilator i tak to zoptymalizuje.
    Ale tu chodzi o zapis a nie o optymalizację.
    Kod zajmuje się złożeniem wartości z bitów leżących "na przełomie"
    bajtu. Operuje na poziomie bitów więc | jest znacznie bardziej
    intuicyjny niż +, który sugeruje operację matematyczną a nie logiczną.
    Tak samo wartość ma być _przesunięta o jeden bit_ względem początkowej a
    nie _dwa razy większa_.

    c_size_mul = ((MMC_Data_16[9] << 1) & 0b110) | (MMC_Data_16[10] >> 7) &
    0b001);

    --
    Pozdrawiam
    Michoo

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: