AGB  ·  Datenschutz  ·  Impressum  







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

Modulo Berechnung falsch?

Ein Thema von Flips · begonnen am 29. Jan 2009 · letzter Beitrag vom 29. Jan 2009
Antwort Antwort
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#1

Modulo Berechnung falsch?

  Alt 29. Jan 2009, 17:46
Hi,

mir ist aufgefallen, dass Delphi scheinbar die modulo-Rechnung nicht ganz beherrscht.
(-1) mod 26 = -1 //laut Evaluierung von Delphi 7 Google sagt hier aber was anderes und eine Fachliteratur von mir auch.

Wieso macht Delphi das falsch?

Danke, lg, Flips
Philipp F.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Modulo Berechnung falsch?

  Alt 29. Jan 2009, 17:52
Weil es richtig ist. Modulo 26: 0 = 26 = 52 = ...; 25 = 51 = ...; das kannst in beide Richtung ausdehnen. Also 25 = -1
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Modulo Berechnung falsch?

  Alt 29. Jan 2009, 17:54
Meine Delphi-Hilfe definiert Modulo so, dass -1 mod 26 tatsächlich -1 sein sollte. Grundsätzlich gibt es mehrere Möglichkeiten für die Modulo-Operation, wenn der Dividend negativ ist. Das Ergebnis kann entweder das selbe Vorzeichen wie der Dividend erhalten oder eben immer positiv sein. Insofern gibt es da kein richtig oder falsch - es ist einfach eine Definitionssache. Siehe hierzu auch den Eintrag in der Wikipedia.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#4

Re: Modulo Berechnung falsch?

  Alt 29. Jan 2009, 17:56
Hmm ne Definitionssache also. Hmm irgendwie befriedigt mich das nicht wirklich
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.318 Beiträge
 
Delphi 12 Athens
 
#5

Re: Modulo Berechnung falsch?

  Alt 29. Jan 2009, 17:58
OK, diese (-1) mod 26 rechnet der Compiler aus und speichert das Ergebnis als Konstante ... da könnte man eventuell denken es wäre ein Fehler in Delphi, aber
Delphi-Quellcode:
x := -1;
y := x mod 26;
wird von der IDIV (ASM) berechnet und da hat Delphi das Selbe ergebnis wie die CPU.

[edit]
arg, wo kommen denn plötzlich die Antworten her?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#6

Re: Modulo Berechnung falsch?

  Alt 29. Jan 2009, 19:25
Mathematisch ist wohl 25 korrekt.
In Mathematik Büchern steht das zumindest, und auch in der Kryptographie wird damit wohl gerechnet.
man muss also auf die -1 solange die 26 addieren, bis es eine positive Zahl ergibt.
(Laut Mathebücher der Informatik
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  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:25 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