Двоичное повторение

В двоичном файле до того, сколько раз может 1 (один) или 0 (нулей) быть повторенным.

Скажем, я имею myfile.mp3; если бы я должен был прочитать двоичный код того файла, который был бы чем-то как "010001001010..."

в этом случае этот 0 повторяется самое большее 3 раза.

двоичный код имел бы 9 (или больше) нули между 1 с? например: 1000000000101001....>> существуют девять, обнуляет здесь...

1
задан 28.09.2015, 20:08

4 ответа

Вы спрашиваете о двоичных строках. В общем смысле нет никакого предела количеству 0 или 1's, который может появиться в последовательности. Таким образом, бесконечно-длинная-строка 0 является допустимым двоичным файлом.

Вы также спрашиваете о двоичных форматах. Данные в компьютере не являются просто случайными двоичными строками; они отформатированы конкретным способом так, чтобы особенно разработанные машины, названные компьютерами, могли обработать их, любой как информация (как MP3) или как инструкции (как winamp.exe), или как раз когда кодировка передачи (как кодировка, используемая в USB или Ethernet).

В практическом смысле Вы не найдете строки произвольной длины 0 или 1's в исполняемом коде. Кодировка передачи, если они не синхронизируются с помощью другого метода, может вставить дополнительные биты после определенного числа битов данных, таким образом, строки произвольной длины не будут найдены там также. Форматы данных могут быть более гибкими, и некоторые позволят длинные строки 0 или 1's, но форматы как MP3 требуют регулярных маркеров (снова, для синхронизации), поэтому даже MP3 тишины не будет содержать весь 0.

Так: двоичная строка могла содержать последовательность 9, обнуляет? Несомненно, это довольно возможно, и вероятно очень распространено. Конкретный двоичный формат мог содержать это? Возможно. Но невозможно сказать, не указывая что формат.

7
ответ дан 12.12.2019, 07:40

Возможно, что это повторяется любое количество раз. Двоичный файл и десятичное число являются почти тем же. Если у Вас есть двоичное число abcde, это просто означает это abcde = a*2^4+b*2^3+c*2^2+d*2+e.

Таким образом, если Вы хотите записать 0 в файл, необходимо будет записать байт всего 0s, и если у Вас есть длинная последовательность 0s.

Также, например, 10 000 000 (двоичных файлов) = 128 (десятичное число), и если Вы хотите умножить его на 2 любого количества раз, необходимо будет добавить столько 0s в конец числа. (Я сделал немного смеси между вещественными числами и компьютерного представления чисел, но я думаю, что Вы видите общее представление).

Править: Как продолжение к вопросам в Ваших комментариях:

Любой язык программирования может открыть файлы для чтения в двоичном формате. (Здесь двоичным файлом это предназначено как двоичный файл по сравнению с текстом), И Вы, скорее всего, найдете такие строки в несжатых файлах изображений, как несжатый формат BMP, произведенный живописцем.

Ваш метод сжатия является одним из первых, используемых для сжатия изображений, я думаю, что их назвали RLE после названия сжатия, но я действительно не помню точно. (RLE на Википедию)

Если Вы хотите читать больше о сжатии, можно считать Википедию, так как это имеет большую информацию. Конкретный широко используемый и не очень сложные сжатия Кодирование методом Хаффмана, и также можно смотреть на Lempel Ziv, используемый zip.

3
ответ дан 12.12.2019, 07:40

Это точно эквивалентно выяснению, сколько нулей, или или пар и т.д. Вы можете иметь подряд в десятичном числе. Столько, сколько Вы хотите, почему там был бы предел?

Существует, конечно, предел максимальному размеру, который может содержать какая-то конкретная переменная/файл/диск, но это - практический вопрос, который вторичен к математике.

Строго говоря, если Вы спрашивающий, как, вероятно, конкретная последовательность нулей в файле MP3, потому что это это - формат сжатого файла, это менее вероятно как продолжительность увеличений последовательности. Вы найдете много пар нулей, но меньше выполнений три и даже меньше выполнений 4 и т.д. Стандартные программы сжатия конкретно ищут шаблоны, так удаляют их для сокращения размера файла и заменяют их ссылкой на шаблон - как приблизительное объяснение сжатия файла.

2
ответ дан 12.12.2019, 07:40

Файл, который составлял всю 1 с или весь 0s, не будет очень интересным файлом. Если бы это были все нули затем, то это не содержало бы значимых данных. Если бы это были все затем то могли бы быть некоторые существующие данные, но это зависело бы, на каком формате файл, как предполагалось, был.

Файл будет только содержать "интересные" данные, если это будет состоять из шаблонов 1 с и 0s и, в зависимости от кодирования файла, они могли быть любой длиной. Хотя длительные периоды одного или другого будут маловероятны.

Это - чистое предположение, но я ожидал бы, что любой тип файла будет содержать примерно то же число 1 с и 0s, и просто рассмотрение двоичных данных не сказало бы Вам, каким файлом это было. Необходимо было бы интерпретировать поток для кодов ASCII, число и т.д. для извлечения значения.

Для ответа на 2-й вопрос в комментарии к ответу @SurDin - да, возможно считать любой файл как двоичный поток, но это будет зависеть от языка, используемого для записи программы.

1
ответ дан 12.12.2019, 07:40

Теги

Похожие вопросы