[C++] Typ większy od long long int - istnieje jakiś?

Cześć,

wiecie może czy dostępny jest typ większy od long long int’a w C++ ? Dane w programie mogą przekraczać tylko o 1 cyfrę więcej niż max. wartość long long’a…

Mój kompilator to gcc.

Pozdrawiam.

Największa to long Double

Potrzebny mi typ całkowity, a long double przechowuje maks. 15 cyfr przed przecinkiem - mniej od long long.

Formalnie w C++ największy jest long, long long jest w C oraz będzie w C++0x. Możesz użyć bibliotek z liczbami dużej precyzji, ale skoro wartość ma być tylko o 1 większa to być może lepiej przeprojektować jakoś swój algorytm?

Nie zawsze trzeba liczbę zapisywać jako liczbę.

Np. konwersja z jednego systemu na drugi da się przeprowadzić na samych string’ach a kod wcale nie jest duży, coś kolo 15 wierszy.

Większych typów nie ma, chyba że zmieścisz się w unsigned long long int. Jak nie to musisz pisać własną arytmetykę, a jak ci się nie che, to dobry kod był gdzieś na http://main.edu.pl

Potrzebuję tylko porównywać dwie liczby - operatorami < i ==. Nie mogę korzystać z zewnętrznych bibliotek. Macie jakieś pomysły albo podpowiedzi jak to zrobić na stringach ?

Tylko co zrobić? Bo na razie nie powiedziałeś o co Ci chodzi.

Mam zapisane w stringu liczby i mam porównać je między sobą (liczby) operatorami = i <.

= możesz zrealizować za pomocą strcmp

<

  1. jeżeli jedna liczba dłuższa od drugiej to ta krótsza jest mniejsza, np:

mniejsza niż:

- dowolna cyfra

  1. jeżeli są takie same długości to zaczynasz porównywać od początku, dopóki nie znajdziesz różne cyfry, np:

***2####

***3####

* - takie same cyfry, # - dowolna cyfra

mniejsza to ta liczba której znaleziona cyfra jest mniejsza .

Jeżeli doszedłeś do końca i nie znalazłeś różnych cyfr to znaczy że liczby są równe.