Wpis z mikrobloga

#programowanie #komputery #informatyka #kiciochpyta #pomoczwykopem

Mireczki, mam pytanko
Mając do dyspozycji procesor pracujący na liczbach całkowitych bez wsparcia dla operacji
mnożenia i dzielenia, proszę podać, która z operacji może zostać skompilowana w sposób
umożliwiający szybsze wykonanie:
a = 7*a
a = 8*a - a
I dlaczego tak się dzieje
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@maguk: drugie, mnozenie przez potege 2 wykonasz przesuwając bity, czyli jednym polecenie, drugie to operacja odejmowania. W pierwszym przypadku będzie to 7 operacji dodawania.
  • Odpowiedz
@Kaczus2B: Przy czym nie jest powiedziane, na jaki słowie operuje procesor, bo jak przesuwasz 3 miejsca w "górę" rejestru to zazwyczaj tracisz najstarsze bity, trzeba je zapamiętać, w każdym razie warto przygotować się na wypadek ustawienia flagi przeniesienia. Słowem to nie takie proste.
  • Odpowiedz
@Analityk: ten sam problem wystepuje również przy pierwszym sposobie. Jeżeli ma być robione sprawdzanie błędów, trzeba je zapewnić dla obydwu rozwiązań.
  • Odpowiedz
@Analityk: Tak, ale to w obu przypadkach i przy dodawaniu i przy mnożeniu trzeba by sprawdzać przepełnienie, więc jest to pomijalne, przy rozważaniach co będzie szybsze. To zresztą czysto akademickie rozważanie, bo jak zauważył
@lol_nope: kompilator i odpowiednio stworzona biblioteka zrobi to i tak w ten sam sposób z dużym prawdopodobieństwem.
  • Odpowiedz