как побочный проект. Я работаю над некоторыми домашними задачами простого поколения, пытаясь написать несколько разных реализаций как средство обучения себя на C и C ++. Конечно, самый быстрый способ генерировать младшие простые числа - это уже иметь их, поэтому я хочу приступить к настройке файла данных простого списка на жестком диске. Я хочу написать весь код, который генерирует простые числа, но у меня нет никаких сомнений относительно использования уже созданных методов хранения. У меня очень мало опыта, когда дело доходит до реального кодирования, но я понимаю большую часть теории. (обратите внимание, что для большей части этого я буду говорить о математических целых числах, а не о переменных типа int)
Итак, у меня есть несколько вопросов к вам, эксперты:
1) Наивным подходом было бы просто записать двоичные числа по мере их генерирования. Тем не менее, в моей голове я представляю список с элементами, разделенными каким-то флагом, так что целые числа больше 32 бит могут быть сохранены (если я доберусь до этой точки). Это, очевидно, неэффективно, но то, что необработанные данные для массива [4723, 12782, 8357] будут выглядеть как 4723F12782F8357, то есть числа хранятся в базовой десятке с 16 битами на цифру и разделяются символами F. Очевидно, что данные о возможностях цифр ABCDE не использовались бы, так что это не очень эффективная система, но вы понимаете, что я имею в виду. Это также имело бы все больший смысл по мере того, как числа становятся длиннее, поскольку любая в любой системе фиксированной длины самая маленькая запись должна быть такой же большой, как самая большая. Я уверен, что должно быть что-то уже написанное на C или C ++, которое делает это эффективно.
2) Другая возможность - это система объявления длины, где перед сохранением каждого целого числа фрагмент данных фиксированной длины (скажем, 1 байт) объявляет, как долго будет целое число (в битах). Это, очевидно, придает аналогичные преимущества предыдущему варианту с дополнительным бонусом не теряя возможности цифр.
Кто-нибудь знает, как можно хранить данные такого рода? Существует ли тип переменной, в котором я могу хранить простые числа, чтобы не ограничивать размер? Более того, каков наиболее эффективный способ сохранения простого списка целых чисел на жестком диске в легко извлекаемом формате?