Binární soubor je posloupnost libovolných bajtů . Název pochází ze skutečnosti, že bajty se skládají z bitů , tedy binárních číslic.
Binární soubory jsou na rozdíl od textových souborů. Textové soubory jsou přitom z pohledu technické implementace na hardwarové úrovni typem binárních souborů. Definice "binárního souboru" se proto hodí na jakýkoli soubor.
Obecně je tento pojem měřítkem vztahu mezi spotřebitelem binárního souboru a souborem samotným. Pokud spotřebitel zná strukturu a pravidla, podle kterých je schopen daný soubor převést na vyšší úroveň, pak to pro něj není binární. Například spustitelné soubory jsou binární pro uživatele počítače, ale nejsou binární pro operační systém .
Operační systémy a programovací knihovny mohou poskytovat speciální zacházení s textovými soubory na rozdíl od binárních souborů. Například v systémech MS-DOS a Windows je standardní vstupně-výstupní knihovna jazyka C implementována tak, že po otevření souboru v "textovém" režimu je sekvence znaků \r\npřečtena jako jeden znak \na operace zápisu naopak zapíše znak \ndo souboru jako sekvenci \r\n. Navíc je tam znak ^Z považován za konec textového souboru, takže při čtení souboru v textovém režimu je vše za tímto znakem ignorováno.
Ale pokud byl soubor otevřen v "binárním" režimu, pak čtení a zápis probíhá striktně bajt po bajtu, bez jakýchkoli konverzí.
Chcete-li vizuálně reprezentovat binární soubor, je rozdělen na kousky stejné velikosti, reprezentované jako čísla, obvykle zapsaná v šestnáctkové soustavě , někdy v osmičkové soustavě , binární soustavě nebo desítkové soustavě . Uvedená velikost kusu může být rovna jednomu oktetu , stejně jako dvěma nebo čtyřem (v případě rozdělení na kusy o více oktetech se použije charakteristika pořadí bajtů zvoleného systému ). Závislost rozsahu reprezentovaných čísel na velikosti kusu ukazuje tabulka:
oktety | počet bitů | hexadecimální | osmičkový | desetinné bez znaménka |
podepsané desetinnou čárkou |
---|---|---|---|---|---|
jeden | osm | 00 … FF |
000 … 377 |
0 … 255 |
-128 … 127 |
2 | 16 | 0000 … FFFF |
000000 … 177777 |
0 … 65535 |
-32768 … 32767 |
čtyři | 32 | 00000000 … FFFFFFFF |
00000000000 … 37777777777 |
0 … 4294967295 |
-2147483648 … 2147483647 |
Často jsou kromě číselných hodnot bajtů na výstupu také znaky kódové stránky , jako je ASCII . Následující příklad ukazuje tzv. klasický výpis (hexadecimální oktet 16 bajtů na řádek, s tisknutelnými znaky ASCII vpravo) začátku souboru PNG s logem Wikipedie :
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 | ...............|