![]() |
Convert.ToInt32 erzeugt Überlauf
Hallo,
mit folgdender Methode möchte ich in einem Integer das Bit an der Position BitPostion setzen.
Code:
Wenn ich jetzt für BitPosition den
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; } 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. |
Re: Convert.ToInt32 erzeugt Überlauf
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz