long overflow abfangen



  • sevus leute,
    immer noch mein kleines programm, jetzt ist es so, dass ich eine zahl eingeben kann, die beliebig gross ist, jedoch zum umwandeln in bin und hex darf ich maximal unsigned long verwenden (4294967295) wie krieg ich jetzt raus ob mein unsigned long welche die zahl übernimmt overflow n ist?

    weil ich möchte dann einen fehler auswerfen, sprich einen hinweis!

    mit einer if abfrage funkt das nicht!

    bitte bitte!



  • Tschuldigung war blödsinn

    [ Dieser Beitrag wurde am 26.06.2003 um 21:15 Uhr von mwoidt editiert. ]



  • @hares: zahl wieder ausgeben und überprüfen, ob das selbe ausgegeben wird? oder in double umwandeln und überprüfen ob innerhalb der grenzen von ulong?



  • warum ausgeben. das geht auch automatisch.
    lies die zahl erstmal als string ein und konvertiere dann nach ulong. ulong dann wieder nach string konvertieren und dann vergleichen.
    oder noch eine möglichkeit :
    lies die zahl als string ein. prüfen ob nur ziffern im sring sind. wenn sie kürzer als 10 stellen ist -> ok; länger -> overflow; gleich -> vergleiche sie mit dem string "4294967295" -> wenn grösser -> overflow, sonst -> ok!
    im ok-fall kannste dann sorglos konvertieren.



  • hardy: mit ausgeben hatte ich innen string ausgeben gemeint. (also die variante, die du nochmal als erste vorgeschlagen hast :D)


Anmelden zum Antworten