Frage

Ich muß unsigned Zahlen verwenden, die mehr als 4 Byte erstrecken könnte, welche Art sollte ich verwenden?

PS Sorry für die "noobism" aber das ist es: D

NB: Ich ganze Zahlen brauchen, weil ich Divisionen zu tun haben, und kümmern sich nur für die Integer-Teile und auf diese Weise int sind nützlich

War es hilfreich?

Lösung

long long , 64-Bit-Integer ... hier können Sie einen Hinweis zu den Datentypen finden und reichen ...

Andere Tipps

Fügen Sie einfach und verwenden int64_t und uint64_t (da Sie unsigned wollen, Sie wollen uint64_t).

Es gibt einige andere nützliche Varianten an diesem Header, wie die am wenigsten Varianten (uint_least64_t ist ein Typ mit mindestens 64 Bit) und die schnellen Varianten (uint_fast64_t ist die schnellste Integer-Typ mit mindestens 64 Bit). Ebenfalls sehr nützlich sind intptr_t / uintptr_t (groß genug für einen void * Zeiger) und intmax_t / uintmax_t (größte Typ).

Und wenn aus irgendeinem Grund der Compiler keinen (da IIRC es ein C-Standard ist, kein C ++ ein), können Sie Boost-der boost / cstdint.hpp (die Sie auch nutzen, wenn Sie tun eine , da in diesem Fall sollte es einfach nach vorn zu der Header der Compiler).

Nehmen Sie Ihre Auswahl:

long long (-9,223,372,036,854,775,808 zu 9,223,372,036,854,775,807)

unsigned long long: (0 bis 18,446,744,073,709,551,615)

Wenn Sie wirklich lange ganze Zahlen (beliebige Genauigkeit), könnten Sie auch versuchen, das gmp Bibliothek, in dem es auch eine C ++ Klasse basierte Schnittstelle.

unsigned long long - es ist mindestens 64 Bit lang

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top