AGB  ·  Datenschutz  ·  Impressum  







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

Convert.ToInt32 erzeugt Überlauf

Ein Thema von Jens Schumann · begonnen am 27. Sep 2005 · letzter Beitrag vom 27. Sep 2005
Antwort Antwort
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#1

Convert.ToInt32 erzeugt Überlauf

  Alt 27. Sep 2005, 10:06
Hallo,
mit folgdender Methode möchte ich in einem Integer das Bit an der
Position BitPostion setzen.
Code:
private void SetBit(int BitPosition)
{
 int   BitPositionValue;
 double BitValue;
 // Berechne den Wert für die ODER-Verknüpfung
 BitValue = Math.Exp(BitPosition*Math.Log(2));
 //    BitPositionValue = Convert.ToInt32(BitValue); // <- Convert erzeugt Überlauf
 BitPositionValue = (int) (BitValue); // <- Funktioniert
 FBitValue = FBitValue | BitPositionValue;
}
Wenn ich jetzt für BitPosition den
Wert 31 übergebe soll der Bit 31 gesetzt werden.
Entspricht bei einem 32-Bit Integer -2.147.483.648.

Es passiert jedoch folgendes:

Convert.ToInt32 meldet eine Bereichsüberschreitung
Der einfache Typcast in einem Integer klappt reibungslos.

Evt. gibt es ja auch noch eine bessere Methode um ein Bits zu setzen.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#2

Re: Convert.ToInt32 erzeugt Überlauf

  Alt 27. Sep 2005, 10:44
Zitat von Jens Schumann:
Entspricht bei einem 32-Bit Integer -2.147.483.648.
$80000000 ist auf diversen Plattformen ein undefinierter Integerwert, insofern wundert mich die Meldung nicht wirklich (auch nicht, dass es mit einem Typecast (Bitmaske) funktioniert).
  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 14:37 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