AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dezimal zu Dual, alternative zum Horner-Schema

Ein Thema von hanssarpei · begonnen am 10. Feb 2013 · letzter Beitrag vom 10. Feb 2013
Antwort Antwort
hanssarpei

Registriert seit: 10. Feb 2013
1 Beiträge
 
#1

Dezimal zu Dual, alternative zum Horner-Schema

  Alt 10. Feb 2013, 21:15
Hallo,

ich bin gerade dabei einen Typen für größere Zahlen zu schreiben, dabei erstelle ich ein Array mit 127 Element mit booleanschen Werten, d.h. jedes Element im Array entspricht einem Bit aus dem dualen System.

Ein neue Instanz des Typs wird dabei über die Angabe der Zahl zur Basis 10 als String angegeben, d.h. '124564710', da in Delphi jedoch der größmögliche dezimale Wert 2^64 ist, benötige ich eine alternative zum Horner Schema (also Zahl durch 2, Rest entspricht dem Bit).

Viele unnötige Worte, kurz um gesagt, ich brauche eine alternative zum Horner-Schema. Hab schon vergebens gegoogelt, da ich jedoch keinen Namen kenne und das Horner-Schema ziemlich verbreitet ist (verständlicherweise), ist es schwer entsprechende Alternativen zu finden.

Daher bin ich für jegliche Alternativen sehr dankbar.
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Dezimal zu Dual, alternative zum Horner-Schema

  Alt 10. Feb 2013, 21:42
Ich neheme an, du möchtest einen langen Zahlenstring ~"123123123123123123123" in ein Bit (Boolean) Array umwandeln?!

Das kannst du lösen, indem du eine String-Math Library benützt (strAdd, strSub, strMul, strDiv) oder du sorgst dafür, das der Input kein Zahlenstring ist sondern direkt Bit-Daten - bzw Datenstrom ~
Delphi-Quellcode:
//..
function DataToBitArray(const Data: PByte; const SizeInBits: Integer): TDynBitArray;
Weiterer Rat von mir - kann es sein, dass das ganze in die kryptographische Richtung geht? Falls ja, dann lass die Finger von Booleans, nimm direkt ein Array of DWord.
Ich hab nämlich zunächst auch einmal ein BooleanBigInteger implementiert und eben bemerkt, dass es klarerweise doch um einiges schneller geht. Ich habs aber nur aus Neugier programmiert (was dann in RSA ausgeartet ist und ich es dann bei der Mathe-Matura präsentieren durfte..)
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (10. Feb 2013 um 21:45 Uhr)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Dezimal zu Dual, alternative zum Horner-Schema

  Alt 10. Feb 2013, 22:22
Bevor du dir viel Arbeit machst, schau mal hier:

Delphi-Quellcode:
function PowerAndMod(A, E, M: int64): int64;
begin
  Result := 0;
  if E < 0 then
    Exit;
  if (M = 1) or (M = -1) then
    Exit;
  if (A = 0) and (E > 0) then
    Exit;
  Result := 1;
  try
    while E > 0 do
      if E mod 2 <> 0 then // Odd
      begin
        Result := (Result * A) mod M;
        E := E - 1;
      end
      else
      begin
        A := (A * A) mod M;
        E := E div 2;
      end;
  except
    raise Exception.Create('Int64 Overflow');
  end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:16 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