Manipulacija bitovima, koja je također poznata kao bit-banging ili bit twiddling, jednostavno je sredstvo za promjenu bitova i podataka računalnog programiranja. Ugađanjem računalnog programiranja kroz manipulaciju bitovima, programer može stvoriti značajan utjecaj na to koliko brzo računalo može vratiti odgovore na upite i riješiti izračune ili stvoriti složene algoritme za otkrivanje pogrešaka i šifriranje. U svijetu računala i tehnologije “brže”, “sigurnije” i “manje” postale su ključne riječi. Manipulacija bitovima daje računalnim programerima učinkovito sredstvo za smanjenje ukupne veličine svog koda uz stvaranje učinkovitijih krajnjih proizvoda s visokom razinom sigurnosti.
Da bismo razumjeli što radi manipulacija bitovima, prvo moramo malo razumjeti što rade programski jezici i razliku između bitova i bajtova. Računalni programski jezik je u biti unaprijed dogovoren skup kodova i simbola koji govore računalu što da radi s danim ulazom. Kada korisnik pritisne tipku na tipkovnici, mogao bi vidjeti slovo ili broj koji se odmah pojavljuje na monitoru, ali, iza kulisa, računalni programski jezik čini mnoge stvari kako bi se to dogodilo. Čak i najjednostavnija funkcija na računalu može zahtijevati nekoliko stotina redaka koda računalnog programskog jezika za ispravan rad.
Podaci u kodu računalnog programskog jezika zapisani su u dijelovima koji se nazivaju bitovi i bajtovi. Bajt je osam bitova. Iako programeri često rade u većoj skali bajta, manipulacija bitovima daje programeru mogućnost da se usredotoči na detalje grickanja, što je četiri bita, ili čak jedan bit. Ova sposobnost fokusiranja na detalje strukture podataka daje programeru pristup za postavljanje zastavice ili stvaranje drugih operativnih uputa u programiranju bez stvaranja opsežnih knjižnica koda.
Algoritamskim manipuliranjem bitovima programskog jezika, računalni programer može stvoriti paralelni procesni sustav koji može ponuditi značajna povećanja performansi računalnog programa. Iako većina programskih jezika zahtijeva obradu svakog sloja informacija u sekvencijalnim redoslijedom, manipulacija bitovima omogućuje da se te funkcije izvode paralelno. Rukovanjem funkcijama na ovaj način, računalni program može istovremeno rješavati više zadataka i računanja, čime se poboljšava brzina i funkcionalnost programa.
Ova poboljšana brzina i sposobnost obavljanja više zadataka čini manipulaciju bitovima moćnim alatom u svijetu sigurnih algoritama šifriranja i algoritama za otkrivanje pogrešaka. Manipuliranjem bitovima mogu se stvoriti složeni algoritmi za skrivanje osjetljivih informacija od znatiželjnih očiju. Ovi se algoritmi mogu koristiti za šifriranje informacija, a zatim ih ponovno dešifrirati za dohvat. Manipulirajući dijelovima koda u programskom jeziku, programeri mogu čak stvoriti programe koji mogu otkriti ranjivosti u vlastitom kodu u roku od nekoliko minuta, umjesto mnogih sati ili dana koje je ovaj zadatak zahtijevao u prošlosti.