Кіріспе
Биттік манипуляция – сөз деңгейінен төменгі деректерді алгоритмдік түрде өңдеу. Биттік манипуляцияны қажет ететін компьютерлік бағдарламалау міндеттеріне төмен деңгейдегі құрылғыларды басқару, қателерді анықтау және түзету алгоритмдері, деректерді сығу, шифрлау алгоритмдері және оңтайландыру кіреді. Көптеген басқа міндеттер үшін заманауи бағдарламалау тілдері бағдарламашыға осы абстракцияларды білдіретін биттердің орнына тікелей абстракциялармен жұмыс істеуге мүмкіндік береді. Биттік манипуляцияны қолданатын бастапқы код биттік операцияларды пайдаланады: AND, OR, XOR, NOT және мүмкін логикалық операторларға ұқсас басқа операциялар; сондай-ақ біттерді жылдыру және бірліктер мен нөлдерді санау, ең жоғары және ең төменгі бір немесе нөлді табу, биттерді қосу, алып тастау және тексеру, өрістерді бөліп алу және енгізу, маскалау және нөлдеу, белгіленген бит позицияларынан немесе өрістерден биттерді жинау және тарату сияқты операциялар бар. Бүтін сандық арифметика операторлары да басқа операторлармен бірге биттік операцияларды орындай алады. Биттік манипуляция кейбір жағдайларда деректер құрылымы бойынша циклдік өңдеу қажеттілігін жоюға немесе азайтуға болады және биттік манипуляциялар параллель өңделетіндіктен, өнімділікті бірнеше есе арттыруға мүмкіндік береді.
Bit manipulation is the act of algorithmically manipulating bits or other pieces of data shorter than a word. Computer programming tasks that require bit manipulation include low level device control, error detection and correction algorithms, data compression, encryption algorithms, and optimization. For most other tasks, modern programming languages allow the programmer to work directly with abstractions instead of bits that represent those abstractions. Source code that does bit manipulation makes use of the bitwise operations: AND, OR, XOR, NOT, and possibly other operations analogous to the boolean operators; there are also bit shifts and operations to count ones and zeros, find high and low one or zero, set, reset and test bits, extract and insert fields, mask and zero fields, gather and scatter bits to and from specified bit positions or fields. Integer arithmetic operators can also effect bit operations in conjunction with the other operators. Bit manipulation, in some cases, can obviate or reduce the need to loop over a data structure and can give manyfold speed ups, as bit manipulations are processed in parallel.
Терминология
Бит-твидлинг, бит-фидлинг, бит-башинг және бит-гимнастика көбінесе бит-манипуляциямен мағынасы бірдей қолданылады, бірақ кейде бит-манипуляцияның тапқыр немесе көзге көрінбейтін әдістеріне немесе қолданылуына, сондай-ақ төмен деңгейдегі құрылғыны басқару деректерін өңдеудің күрделі немесе қиын тапсырмаларына сілтеме жасайды. "Биттік бұрмалау" термині алғашқы компьютерлік аппараттық құралдар дәуірінен бастау алады, онда компьютер операторлары компьютерлік басқару элементтерін бұрап немесе өзгертіп түзетулер енгізетін. Компьютерлік бағдарламалау тілдері дамыған сайын, бағдарламашылар бұл терминді бит деңгейіндегі есептеулерді қажет ететін деректерді өңдеуді білдіру үшін қабылдады.
Бит бойынша жұмыс
Біттік операция бір немесе бірнеше биттік үлгілерде немесе екілік сандарда жеке биттері деңгейінде жұмыс істейді. Ол орталық процессор (CPU) тікелей қолдайтын жылдам, негізгі операция болып табылады және салыстырулар мен есептеулер үшін мәндерді өңдеуге қолданылады. Көптеген процессорларда, көпшілік біттік операциялар бір циклді болып келеді, бұл бөлу, көбейту және тармақталу операцияларынан әлдеқайда жылдам. Қазіргі заманғы процессорлар ұзақ нұсқаулар құбырлары мен басқа архитектуралық шешімдерінің арқасында арифметикалық және логикалық операцияларды біттік операциялармен салыстырылатын жылдамдықпен орындай алады, бірақ біттік операциялар ресурстарды аз пайдалануының есесінен көбінесе аз қуатты тұтынады.
Маскалау
Маска – биттік операциялар үшін, әсіресе биттік өрісте қолданылатын деректер. Масканы пайдалану арқылы байт, ниббл, сөз (т.б.) ішіндегі бірнеше биттерді бір биттік операцияда қосуға, өшіруге немесе күйін өзгертуге (немесе керісінше) болады. Егер маскалау операцияларға шартты түрде қолданылса, онда бұл предикация деп аталады.