Bitmasks sudah sangat tua. Saya belum dapat menemukan referensi ke yang pertama, tetapi mereka pasti populer dengan munculnya prosesor 8-bit, dan kemungkinan juga digunakan dalam prosesor 4-bit.
Gagasan di balik bitmasks adalah untuk memanfaatkan paralelisme bitwise. Komputer 8 bit dapat melakukan operasi bitwise yang sama hingga 8 bit sekaligus jika mereka dikemas ke dalam satu kata asli (yang artinya cocok dalam register).
Nama berasal dari masking, yang merupakan pendekatan umum untuk menutupi area yang tidak ingin berinteraksi dengan Anda. Sebagai contoh, pertimbangkan stensil ini untuk menutupi area dinding (stensil telah dipindahkan setelah lukisan untuk menunjukkan polanya)
Masker juga digunakan dalam fotografi, di mana mereka pergi dengan istilah "menghindar" daripada "stensil." Anda dapat menggunakan topeng untuk mengaburkan sebagian cahaya selama pencetakan untuk meringankan suatu area.
Istilah ini juga digunakan secara langsung dalam fotolitografi, yang merupakan teknik yang digunakan untuk membuat sirkuit terpadu. Topeng mencegah cahaya dari mencapai photoresist dicat pada chip, yang menciptakan pola yang kemudian mengarah pada pola facinating pada chip. (Gambar di bawah ini adalah salah satu topeng untuk prosesor Intel 8080A , jika Anda penasaran)
Demikian juga, dalam penyembunyian bit, Anda memilih bagian dari kata yang ingin Anda operasikan, menutup semua sisa bit. Dalam contoh di bawah ini, saya menggunakan operasi "dan" untuk menutupi input sehingga hanya bit 3, 4, dan 8 yang terlihat. Sisanya "bertopeng" sehingga mereka adalah 0's. Topeng yang saya gunakan adalah 00110001
. Saya menunjukkannya di bawah ini dengan #
mewakili 0 dan .
mewakili 1 karena itu membuat tampilan visual bitmask mirip dengan topeng fisik di atas, dan saya menunjukkan baris "bit terpilih" yang menunjukkan bit dari output yang tidak ditutup ( "bit yang dipilih" sebenarnya bukan operasi logis yang terjadi ... prosesor benar-benar berjalan dari input DAN mask ke output dalam satu langkah, tapi saya pikir ini memperjelas gambar visual)
Input 10010111
Mask ##..###. (aka 00110001)
-----------------------
(selected) 01 1
Input AND Mask 00010001
Seperti yang saya sebutkan, bitmasking sudah sangat tua karena meningkatkan produktivitas prosesor secara dramatis. Pada prosesor 4 bit, itu dapat membuat prosesor 4x lebih cepat. Pada proses 8 bit, atau dapat membuatnya 8x lebih cepat (pada operasi bitwise saja, tentu saja).
Salah satu penggunaan yang menarik untuk ini adalah mesin catur. Papan Catur memiliki 64 kotak. Mesin modern memiliki bilangan bulat 64 bit. Ini adalah keberuntungan yang sangat nyaman, sehingga mesin catur sering memanfaatkannya. Mereka memiliki apa yang disebut " bitboard " yang berisi lokasi potongan-potongan. Ini memungkinkan Anda melakukan segala macam optimasi, seperti mencari semua gerakan gadai dalam satu langkah.