Файл
- 1 year ago
- 0
- 0
Двоичный файл — последовательность произвольных байтов . Название связано с тем, что байты состоят из бит , то есть двоичных цифр.
Двоичные файлы противопоставляются текстовым файлам. При этом с точки зрения технической реализации на уровне аппаратуры, текстовые файлы являются видом двоичных файлов. Поэтому под определение «двоичный файл» подходит любой файл.
В целом данный термин представляет собой меру отношения потребителя бинарного файла и самого файла. Если потребитель знает структуру и правила, по которым он способен преобразовать данный файл к более высокоуровневому, то он не является для него бинарным. Например, исполняемые файлы являются бинарными для пользователя компьютера, но при этом не являются таковыми для операционной системы . [ источник не указан 2319 дней ]
В операционных системах и библиотеках программирования может быть предусмотрена специальная обработка текстовых файлов в отличие от бинарных. Например, в системах MS-DOS и Windows
библиотека стандартного ввода-вывода
языка C
реализована таким образом, что после открытия файла в «текстовом» режиме последовательность символов
\r\n
читается как один символ
\n
, а операция записи, наоборот, записывает символ
\n
в файл в виде последовательности
\r\n
. Кроме того, символ ^Z там рассматривается как конец текстового файла, поэтому при чтении файла в текстовом режиме всё, что идёт после этого символа, игнорируется.
Но если файл был открыт в «двоичном» режиме, то чтение и запись происходит строго побайтно, без каких бы то ни было преобразований.
Для наглядного представления двоичного файла он разбивается на куски равного размера, представляемые в виде чисел, записываемых, обычно, в шестнадцатеричной системе , иногда в восьмеричной , двоичной или десятичной . Означенный размер куска может быть равен одному октету , а также двум или четырём (в случае разбиения на куски по несколько октетов применяется характерный для выбранной системы порядок байтов ). Зависимость диапазона представляемых чисел от размера куска показана в таблице:
октетов | кол-во бит | шестнадцатеричное | восьмеричное |
десятичное
беззнаковое |
десятичное
знаковое |
---|---|---|---|---|---|
1 | 8 |
00
… FF |
000
… 377 |
0
… 255 |
-128
… 127 |
2 | 16 |
0000
… FFFF |
000000
… 177777 |
0
… 65535 |
-32768
… 32767 |
4 | 32 |
00000000
… FFFFFFFF |
00000000000
… 37777777777 |
0
… 4294967295 |
-2147483648
… 2147483647 |
Нередко, помимо числовых значений байт, выводятся также символы кодовой страницы , например ASCII . Нижеследующий пример показывает т. н. классический дамп (пооктетное шестнадцатеричное представление по 16 байт в строке, с печатными ASCII-символами справа) начала PNG -файла логотипа Википедии:
00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR| 00000010 00 00 00 87 00 00 00 a0 08 03 00 00 00 11 90 8f |................| 00000020 b6 00 00 00 04 67 41 4d 41 00 00 d6 d8 d4 4f 58 |.....gAMA.....OX| 00000030 32 00 00 00 19 74 45 58 74 53 6f 66 74 77 61 72 |2....tEXtSoftwar| 00000040 65 00 41 64 6f 62 65 20 49 6d 61 67 65 52 65 61 |e.Adobe ImageRea| 00000050 64 79 71 c9 65 3c 00 00 03 00 50 4c 54 45 22 22 |dyq.e<....PLTE""| 00000060 22 56 56 56 47 47 47 33 33 33 30 30 30 42 42 42 |"VVVGGG333000BBB| 00000070 4b 4b 4b 40 40 40 15 15 15 4f 4f 4f 2c 2c 2c 3c |KKK@@@...OOO,,,<| 00000080 3c 3c 3e 3e 3e 3a 39 39 04 04 04 1d 1d 1d 35 35 |<<>>>:99......55| 00000090 35 51 50 50 37 37 37 11 11 11 25 25 25 0d 0d 0d |5QPP777...%%%...| 000000a0 27 27 27 1a 1a 1a 38 38 38 2a 2a 2a 08 08 08 20 |'''...888**... | 000000b0 20 20 17 17 17 2e 2e 2e 13 13 13 bb bb bb 88 88 | ..............|