AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 12:47

Parameter dieser Suchanfrage:

Suche in Thema: IsPowerOfTwo
Suche alle Beiträge, die von "himitsu" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 7 von insges. 7 Treffern
Suche benötigte 0.003s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Neuen Beitrag zur Code-Library hinzufügen

    Re: IsPowerOfTwo

      Delphi
      by himitsu, 7. Mai 2009
    ach menno, so kann man sich auch verdenken :wall:

    dann also > wieder rein und Abs raus :nerd:
    Result := (i > 0) and (i and Pred(i) = 0);
  • Forum: Neuen Beitrag zur Code-Library hinzufügen

    Re: IsPowerOfTwo

      Delphi
      by himitsu, 7. Mai 2009
    2: das > war 'nen Copy&Paster-Fehlerchen :oops: und sollte ein <> sein

    1: Abs(MinInt) = MaxInt+1 , also außerhalb des Wertebereichs, da der negative Bereich um 1 größer ist, also der Positive, weil die 0 im positiven Bit-Satz enthalten ist.

    // ohne Rangeprobleme, da der Sonderfall von MinInt abgefangen wird
    Result := (i = Low(Integer))
    or (i > 0) and (i and Pred(i) = 0)
    or (i < 0)...
  • Forum: Neuen Beitrag zur Code-Library hinzufügen

    Re: IsPowerOfTwo

      Delphi
      by himitsu, 7. Mai 2009
    wie gesagt, die Bereichsprüfung sollte besser nicht unterschlagen werden (in ASM gibt's damit aber keine Probleme :mrgreen: )

    Function IsPowerOfTwo(i: Cardinal): Boolean; Inline;
    Begin
    {$IFOPT R+}
    {$R-}
    Result := (i <> 0) and (i and Pred(i) = 0);
    {$R+}
    {$ELSE}
    Result := (i <> 0) and (i and Pred(i) = 0);
  • Forum: Neuen Beitrag zur Code-Library hinzufügen

    Re: IsPowerOfTwo

      Delphi
      by himitsu, 7. Mai 2009
    ist klar, da durch die Dastellung oben alles 1 und unten alle Bits 0 sein müßten (siehe Aufbau des Zweierkomplements)

    mit aktiver Bereichsprüfung
    Function IsPowerOfTwo(i: Integer): Boolean;
    Begin
    Result := (i = Low(Integer))
    or (i > 0) and (i and Pred(i) = 0)
    or (i < 0) and (-i and Pred(-i) = 0);
    End;
  • Forum: Neuen Beitrag zur Code-Library hinzufügen

    Re: IsPowerOfTwo

      Delphi
      by himitsu, 7. Mai 2009
    ist och hübsch und funktioniert ... entspricht auch Hagens 2. Version :angel:
  • Forum: Neuen Beitrag zur Code-Library hinzufügen

    Re: IsPowerOfTwo

      Delphi
      by himitsu, 6. Mai 2009
    Kommt drauf an ... solange der Compiler keine Inline-Funktionen unterstützt (abgesehn davon, daß Hagens Funktion eh nicht als Inline definiert ist), kann man den Call-Overhead eh nicht umgehn.


    es ist auch mehr als Alternative zum ersten Code (mit dem Schleifchen) gedacht

    das was die Schleife macht, übernimmt hier BSR bzw BSF



    das Ganze ist 'ne angepaßte Auskopplung von
  • Forum: Neuen Beitrag zur Code-Library hinzufügen

    IsPowerOfTwo

      Delphi
      by himitsu, 6. Mai 2009
    Hab hier noch was Kleines als Nachtrag :angel:

    Code-Library -> Algorithmen -> IsPowerOfTwo

    Function IsPowerOfTwo(i: LongWord): Boolean;
    ASM
    BSR EDX, EAX
    BSF EAX, EAX
    JZ @@None
    CMP EAX, EDX


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=himitsu&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=133667
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz