Каков наилучший способ хранить двоичные данные в числе?

Мне интересно, можно ли хранить двоичные данные в числе, и как максимально двоичные данные можно сохранить в одном числе.

Например, допустим, я хочу сохранить следующий текст в числе:

Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit. Donec egestas nunc eget rhoncus blandit.

В двоичном виде это:

01001100 01101111 01110010 01100101 01101101 00100000 01101001 01110000 01110011 01110101 01101101 00100000 01100100 01101111 01101100 01101111 01110010 00100000 01110011 01101001 01110100 00100000 01100001 01101101 01100101 01110100 0101100 00100000 01100011 01101111 01101110 01110011 01100101 01100011 01110100 01100101 01110100 01110101 01110010 00100000 01100001 01100100 01101001 01110000 01101001 01110011 01100011 01101001 01101110 01100111 00100000 01100101 01101100 01101001 01110100 0101110 00100000 01000100 01101111 01101110 01100101 01100011 00100000 01100101 01100111 01100101 01110011 01110100 01100001 01110011 00100000 01101110 01110101 01101110 01100011 00100000 01100101 01100111 01100101 01110100 00100000 01110010 01101000 01101111 01101110 01100011 01110101 01110011 00100000 01100010 01101100 01100001 01101110 01100100 01101001 01110100 0101110 

Теперь, если я преобразую это в число, я получу: 2.15146353486 * 10^16

Преобразование этого обратно в двоичный файл - вот где проблема, я получаю 00000010,

Теперь, очевидно, я не знаю, что я здесь делаю, поэтому, пожалуйста, поймите, что это не "почему это не работает?" вопрос, который я спрашиваю: возможно ли то, что я хочу сделать, и если да, то как это можно сделать?

Поскольку двоичный файл можно преобразовать в ASCII или BASE-64 и наоборот, из этого следует, что преобразование в число и обратно также должно работать. В конце концов, Base64- это, в основном, система счисления на основе 64, а десятичные числа - это система на основе 10, а двоичная система - это система на основе двух.

Любой совет будет принят во внимание.

1 ответ

Все, только ВСЕ в компьютере является двоичным - нули и единицы.

Все это:

  • Lorem Ipsum Dolor Sit Amet, концерт...
  • 2.15146353486 * 10^16

просто понятные человеку представления некоторого куска двоичных данных.

Теперь, если я преобразую это в число, я получу: 2.15146353486 * 10^16

Число в его обычном смысле, обозначающем десятичное число, не имеет ничего общего с текстом. Нет смысла пытаться представить текст одним огромным десятичным числом.

Преобразование этого обратно в двоичный файл - вот где проблема, я получаю 00000010.

Ваше обращение неверно. Десятичная цифра 2, когда она выражается в виде целого байта (=8 бит), кодируется как 00000010, Следовательно, вы опустили "остаток" числа, плюс вы конвертировали только его самую значимую цифру.

Мне интересно, возможно ли хранить двоичные данные в числе, и как максимально двоичные данные могут быть сохранены в одном числе

Двоичные данные не хранятся в (десятичном) числе. Число - это просто представление некоторого фрагмента двоичных данных (в случае целых чисел обычно 1, 2, 4 или 8 байтов). Поэтому, если вы перефразируете свой вопрос и зададите немного более правильный вопрос "каково будет наибольшее десятичное число, которое может храниться в двоичных данных", ответ будет таким: просто любое число, во всяком случае большое, единственным ограничением является доступная память.

Другие вопросы по тегам