-
Data: 2011-02-09 09:05:50
Temat: Re: Początek zabawy z bascomem
Od: janusz_kk1 <j...@o...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Dnia 08-02-2011 o 22:41:36 Michoo <m...@v...pl> napisał(a):
> 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);
Juz Adamowi odpowiedziałem, gdzieś ostatnio w kodzie znalazłem taką perełkę
ale nie mogę jej znaleść, ten przykład co dałem był akurat prosty,
ale skłądanie kilku operacji w jednej lini skutecznie ją zaciemnia.
Ja sobie piszę komentarze co dana linia robi, ale z cudzym kodem jest
problem bo trzeba sie zastanowić.
--
Pozdr
JanuszK
Następne wpisy z tego wątku
- 09.02.11 09:32 J.F.
- 09.02.11 09:33 4CX250
- 09.02.11 09:56 RoMan Mandziejewicz
- 09.02.11 10:16 4CX250
- 09.02.11 10:45 RoMan Mandziejewicz
- 09.02.11 10:50 4CX250
- 09.02.11 11:39 neuron
- 09.02.11 11:57 Piotrek_P
- 09.02.11 12:00 Piotrek_P
- 09.02.11 12:32 Mirek
- 09.02.11 12:44 RoMan Mandziejewicz
- 09.02.11 13:39 4CX250
- 09.02.11 22:21 Adam Dybkowski
- 09.02.11 22:30 Adam Dybkowski
- 09.02.11 23:05 Grzegorz Niemirowski
Najnowsze wątki z tej grupy
- Smar do video
- Litowe baterie AA Li/FeS2 a alkaliczne
- "ogrodowa linia napowietrzna"
- jaki zasilacz laboratoryjny
- jaki zasilacz laboratoryjny
- Puszka w ziemię
- T-1000 was here
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
Najnowsze wątki
- 2025-02-06 PROGRAM DOPŁAT DO AUT ELEKTRYCZNYCH TO ABSURD. ZA ŚRODKI Z KPO KUPIMY NIEMIECKIE I CHIŃSKIE AUTA
- 2025-02-05 ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-05 Re: ceny OC
- 2025-02-07 Smar do video
- 2025-02-06 Litowe baterie AA Li/FeS2 a alkaliczne
- 2025-02-07 Gliwice => Business Development Manager - Network and Network Security
- 2025-02-07 Warszawa => System Architect (Java background) <=
- 2025-02-07 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-07 Warszawa => Solution Architect (Java background) <=
- 2025-02-07 Gliwice => Ekspert IT (obszar systemów sieciowych) <=
- 2025-02-07 Lublin => Programista Delphi <=
- 2025-02-07 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-02-07 Dęblin => Node.js / Fullstack Developer <=
- 2025-02-07 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo