große Ganzzahl vom Typ int64_t

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
XCooperation
Beiträge: 78
Registriert: 01.06.2005 15:05:37
Wohnort: Schrobenhausen
Kontaktdaten:

große Ganzzahl vom Typ int64_t

Beitrag von XCooperation » 30.11.2006 19:14:45

Hallo,
ich hab folgendes Problem: ich habe in meinem Programm eine Ganzzahlkonstante, die größer als 2^32 ist, und damit in int nicht mehr darstellbar ist.
Kein Problem denk ich mir, konvertier ich sie halt in int64_t (=64bit)
Funktioniert leider nicht, g++ beschwert sich immer noch das die Ganzzahlkonstante zu groß für long ist :(

Was soll ich tun???

Code: Alles auswählen

if(file.Seek((int64_t)(4294967296)+32,LF_MOVE_BEGIN)==-1)
		_VERBOSEL("seeking failed!");
Never trust a running system!
http://www.xenesis.net

Benutzeravatar
Six
Beiträge: 8069
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Beitrag von Six » 30.11.2006 22:21:43

Na, in der Zweierkomplementdarstellung stehen dir ja nicht die vollen 32 bzw. 64 Bit in jede Richtung zur Verfügung. Wenn du es nur mit natürlichen Zahlen (also >0) zu tun hast, dann benutze einen unsigned Integer.
Be seeing you!

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 30.11.2006 23:08:35

Wenn du 64 bit Ganzzahlen einen Wert zuweisst muss ein LL hinter die Zahl:

Code: Alles auswählen

#include<iostream>
using namespace std;
int main ()
{
int64_t a;
a=5000000000LL;
cout <<a<< endl;
return 0;
}

Antworten