Klasa obsługująca bardzo duże liczby

0

Przerabiam Symfonię C++. I natknąłem się na zadanie, za które nie wiem jak się zabrać. Otóż mam Zrealizować klasę, która będzie mogła zapisać odległość z Marsa do Ziemi w metrach, a więc bardzo dużą. Problem jest taki, że muszę to zrealizować na 60 bitach używając do tego typu int. Czyli muszę to zrobić tak, żeby liczba zapisywała się we fragmentach i później jakoś łączyła. Problem jest tylko taki, że nie wiem jak taką liczbę można zapisać w kawałkach, żeby później się łączyła. Bo dalsza część zadania polega na tym, żeby przeładować operatory tak, żeby do tej liczby można było dodać ilość kilometrów, zmienić pozycję statku i dzielić odcinek. Co dziwne, zadanie nie wydaje się być trudne. Z przeładowaniem wiem co i jak trzeba zrobić. Problem mam jedynie z "początkiem" czyli sposobem zapisania takiej liczby w częściach. Nie wiem jak zacząć, więc kodu nie mam wiele, ale na dowód, że cokolwiek próbowałem zrobić (i pewnie jest źle) to mogę wkleić. Chociaż mam tylko konstruktor.

class pozycja
{
	int x;
	int y;
	int z;
public:
	pozycja(int a = 0, int b = 0, int c = 0)
};
pozycja::pozycja(int a, int b, int c): x(a), y(b), z(c)
{
} 
1

w tablicy przechowuj liczby np int [] tab={3,6,8,0,6}; // liczba 36806
A potem wykonuj na nich operacje tak jak ręcznie wykonujesz na papierze z przenoszeniem wartości do kolejnej kolumny itd.

user image

3

60 bitów wystarczy do zapisania maksymalnej odległości między Ziemią a Marsem w mikrometrach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1