Fail perduaan

Fail perduaan ialah fail komputer yang mungkin mengandungi sebarang jenis data, dikodkan dalan bentuk perduaan untuk simpanan komputer dan tujuan pemprosesan; contohnya fail-fail dokumen komputer berisi teks berformat. Kebanyakan format fail perduaan mengandungi bahagian-bahagian yang boleh ditafsirkan sebagai teks; fail perduaan yang hanya berisi data teks—tanpa, contohnya, sebarang pemformatan maklumat—dipanggil fail teks biasa. Dalam banyak kes, fail-fail teks biasa dianggap tidak sama dengan fail-fail binari kerana fail binari mengandungi bukan sekadar teks biasa.
Semasa pemuatturunan, sesebuah atur cara yang berfungsi sepenuhnya tanpa sebarang pemasang juga sering dipanggil atur cara perduaan, atau cuma perduaan (berlawanan dengan kod sumber).

Struktur

Tidak seperti fail teks, tiada sebarang aksara khas dalam fail mod perduaan untuk menandakan tamat fail. Fail mod perduaan menjejak tamat fail menerusi jumlah aksara yang hadir dalam kemasukan kamus fail berkenaan. Fail perduaan biasanya ditakrifkan sebagai suatu jujukan bait, bermakna digit perduaannya (bit) dikumpulkan lapan setiap satu. Fail perduaan selalunya berisi bait yang sepatutnya ditakrifkan berlainan daripada aksara. Atur cara komputer terkompil merupakan contoh biasa; aplikasi terkompil (fail objek) kadang kala dipanggil—khususnya oleh pengatur cara—perduaan (binary dalam bahasa Inggeris). Tetapi fail perduaan juga boleh mengandungi imej, bunyi, versi termampat fail lain, dsb., secara ringkas, apa saja jenis kandungan fail.
Sesetengah fail perduaan mengandungi pengepala; blok-blok metadata yang digunakan oleh atur cara komputer untuk mentafsir data dalam fail berkenaan. Sebagai contoh, fail GIF mungkin berisi lebih daripada satu imej, dan pengepala digunakan untuk mengenal pasti dan memerihalkan setiap blok bagi data imej. Jika sesebuah fail perduaan tidak mengandungi sebarang pengepala, ia bolehlah dipanggil fail perduaan rata.

Manipulasi

Fail perduaan selalunya diterjemahkan kepada pewakilan teks biasa (dengan, contohnya, Base64) untuk menghantarkannya menerusi sistem tertentu. Namun ada keburukan jika datanya dikodkan, antaranya saiz fail akan bertambah (contohnya dengan Base64 akan menambah saiz fail sebanyak lebih kurang 30%). Di samping itu, pengekodan juga memerlukan perterjemahan semula kepada perduaan selepas penerimaan. Penambahan saiz boleh diatasi dengan pemampatan pautan tahap rendah, kerana data teks yang terhasil akan mempunyai entropi serendah jika saiznya bertambah, jadi data sebenarnya yang dipindahkan dalam senario ini akan mempunyai saiz menghampiri saiz data perduaan asal. Lihat Pengekodan binari-kepada-teks untuk perincian perkara ini.
Microsoft Windows dan pustaka-pustaka piawainya membenarkan sang pengatur cara untuk menentukan parameter yang menunjukkan jika fail terlibat adalah teks biasa atau perduaan semasa membuka sesebuah fail; ini melibatkan panggilan pustaka piawai supaya membaca dan menulis daripada fail tersebut dalam cara sistem berkenaan menukar antara aksara "tamat baris" (aksara suap baris ASCII) dan jujukan tamat baris yang sistem pengendalian tadi harapkan aplikasi yang terlibat gunakan dalam fail (aksara suap baris dan kembali pembawa dalam turutan). Ini juga dibenarkan dalam Unix, namun fail teks dan perduaan tidak dibezakan dalam Unix, kerana ia hanya menggunakan aksara suap baris tunggal untuk meletakkan tamat baris kedalam fail. Dengan ini, pembezaan antara dua fail ini lantas, sehingga suatu tahap, adalah tidak penting.

Keserasian perduaan

Dua fail yang serasi perduaan mempunyai corak sifar dan satu yang sama dalam bahagian data fail tebabit. Namun pengepala fail masing-masing mungkin berbeza. Istilah ini digunakan pada umumnya untuk menyatakan bahawa fail-fail data yang dihasilkan oleh satu aplikasi adalah serupa dengan fail-fail data yang dihasilkan oleh satu aplikasi yang lain. Sebagai contoh, sesetengah syarikat perisian menghasilkan aplikasi untuk Windows dan Macintosh yang serasi perduaan. Ini bermakna, fail yang dihasilkan dalam persekitaran Windows boleh juga digunakan di Macintosh dan sebaliknya. Dengan ini, masalah penukaran yang disebabkan oleh pengimportan dan pengeksportan data dapat dielakkan.