Это распространенный вопрос в вводных классах компьютерной науки в университете. Основными областями фокуса являются: a) понимание того, как (целочисленные) числа хранятся в виде двоичных цифр, и b) основы структур данных, где, если язык программирования не предоставляет желаемую структуру данных, вы можете использовать meta или таких как struct
в C, class
в C++ или record
в Паскале.
Так как же меньше целых чисел хранится на компьютере? В C у вас есть типы данных char, short, int, long
, которые могут быть использованы для хранения целых чисел различных размеров. (Я проигнорирую long long
для этого обсуждения.) Скажем, ради общей общности, что на данной 32-битной платформе размеры равны соответственно 8-битным, 16-битным, 32-битным и 64-битным. Рассмотрим значения, которые могут быть представлены (для упрощения рассмотренных без знака).
Теперь, как вы могли бы хранить большее целое число, которое невозможно сохранить в 64-битном формате без знака? Создайте свой собственный большой целочисленный тип данных, состоящий из нескольких меньших (но стандартных) целых чисел, чтобы они представляли большие значения.
Я думаю, что это должно указывать на вас в правильном направлении и позволить вам написать свой собственный ответ на домашнюю работу или вопрос экзамена.
http://gmplib.org/ – ziya