A bináris fájl tetszőleges bájtok sorozata . A név onnan származik, hogy a bájtok bitekből , azaz bináris számjegyekből állnak.
A bináris fájlok a szöveges fájlokkal szemben állnak. Ugyanakkor a hardver szintű technikai megvalósítás szempontjából a szövegfájlok egyfajta bináris fájlok. Ezért a "bináris fájl" definíciója minden fájlhoz illeszkedik.
Általában ez a kifejezés a bináris fájl fogyasztója és maga a fájl közötti kapcsolatot méri. Ha a fogyasztó ismeri azt a struktúrát és szabályokat, amelyek alapján egy adott fájlt magasabb szintűvé tudja konvertálni, akkor az nem bináris számára. Például a futtatható fájlok binárisak a számítógép-felhasználó számára, de nem binárisak az operációs rendszer számára .
Az operációs rendszerek és programkönyvtárak a szövegfájlok speciális kezelését biztosíthatják a binárisokkal szemben. Például MS-DOS és Windows rendszereken a C nyelv szabványos bemeneti-kimeneti könyvtára úgy van megvalósítva, hogy a fájl "szöveges" módban történő megnyitása után egy karaktersorozat \r\negyetlen karakterként kerül beolvasásra \n, és az írási művelet éppen ellenkezőleg, sorozatként ír egy karaktert \na fájlba \r\n. Ezenkívül a ^Z karaktert a rendszer a szövegfájl végeként kezeli, így a fájl szöveges módban történő olvasásakor a karakter utáni minden figyelmen kívül marad.
De ha a fájlt "bináris" módban nyitották meg, akkor az olvasás és írás szigorúan byte-byte-onként történik, mindenféle átalakítás nélkül.
A bináris fájl vizuális megjelenítéséhez egyenlő méretű darabokra bontják, számok formájában, amelyeket általában hexadecimálisan írnak , néha oktálisan , binárisan vagy decimálisan . Egy darab feltüntetett mérete lehet egy oktett , valamint kettő vagy négy (több oktettből álló darabokra való felosztás esetén a kiválasztott rendszerre jellemző bájtsorrend kerül felhasználásra ). Az ábrázolt számok tartományának a darab méretétől való függése a táblázatban látható:
nyolcasok | bitek száma | hexadecimális | nyolcas | decimális előjel nélküli |
decimális előjelű |
---|---|---|---|---|---|
egy | nyolc | 00 … FF |
000 … 377 |
0 … 255 |
-128 … 127 |
2 | 16 | 0000 … FFFF |
000000 … 177777 |
0 … 65535 |
-32768 … 32767 |
négy | 32 | 00000000 … FFFFFFFF |
00000000000 … 37777777777 |
0 … 4294967295 |
-2147483648 … 2147483647 |
Gyakran a bájtok numerikus értékein kívül kódlap karakterek is megjelennek , például ASCII . A következő példa az ún. klasszikus dump (soronként 16 bájt oktett hexadecimális ábrázolása, nyomtatható ASCII karakterekkel a jobb oldalon) a Wikipédia - logó PNG - fájl elején:
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 | ..............|