kostenloser Webspace werbefrei: lima-city


Probleme mit long-Datentyp

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    r*****d

    Hallo, ich benutze den gcc-Compiler und will das hier:
    long a = 5000000000L;
    kompilieren.

    Ich bekomme aber eine Meldung: "integer constant is too large for "long" type "

    das verstehe ich nicht, die Zahl müsste doch noch in den Zahlenbereich von long passen??
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. k***o

    Falsch!

    (signed) long:

    (2^32)/2 - 1 = 2.147.483.647

    nimm double!

    MfG

    Beitrag geändert: 14.10.2008 23:22:12 von koslo
  4. Autor dieses Themas

    r*****d

    es kann doch net sein, dass mit 32 Bit die Sache schon ausgereizt ist?

    Was wäre denn int? ne 16-Bit Zahl?
  5. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    du hast vergessen, das es auch noch ein Vorzeichen gibt!

    Bereich:
    sigened int: von –2.147.483.648 bis +2.147.483.647
    unsigned int: von 0 bis 4.294.967.296
    long long: von –9.223.372.036.854.755.807 bis +9.223.372.036.854.755.807

    Du könntest also den Datentyp "long long" verwenden ;)

    http://openbook.galileocomputing.de/c_von_a_bis_z/c_007_003.htm (ganz unten)
  6. k***o

    das sind die einfachsten Datentypen, die sind nun ma nicht größer. ansonsten gibt es evt. auch eine bibliothek für größere zahlen (musste ma googlen oder dir selbst einen datentyp bauen, der deinen ansprüchen genügt.). Ich weiß, dass es in java solche datentypen gibt (BigInteger, Big..., ...), vielleicht auch für c.
  7. Du kannst dir eine Klasse schreiben für unendlich große Zahlen! Dann hast du keine Probleme mehr mit der Größe. Habe ich auch gemacht als mir long long zu klein war; leider ist sie noch nicht ganz ausgereift für die Veröffentlichung, aber bald kannst du sie dir auf meiner Homepage herunterladen.
  8. k***o

    hatte im reinen c auch solche klasse mit "unendlichen" zahlen geschrieben.
    wenn du noch hilfe brauchst, kann ich dir auch helfen. am besten is die division solcher zahlen.
    MfG

  9. hatte im reinen c auch solche klasse mit "unendlichen" zahlen geschrieben.
    wenn du noch hilfe brauchst, kann ich dir auch helfen. am besten is die division solcher zahlen.
    MfG


    Wie hast du denn bitte in C eine Klasse gschrieben?
  10. k***o

    war klar das die frage kommt :-)
    damit meinte ich progrämmchen

    das könnte ich aber ma in c++ portieren. schön mit operanten-überladung und den ganzen schnick schnack.

    Beitrag geändert: 15.10.2008 17:25:32 von koslo
  11. Autor dieses Themas

    r*****d

    du hast vergessen, das es auch noch ein Vorzeichen gibt!
    ne das hab ich nicht ;) ich habe nur iwie gedacht, dass long 64-Bit wäre und nicht, dass long und int beide 32-Bit sind.

    Jetzt weiß ich wie es geht, vielen Dank. 64-Bit reichen mir übrigens aus, da ich das Produkt von zwei Integern speichern muss.
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!