Bitni postopki. Programiranje v C in C ++
Bitni operacije so operacije, ki se uporabljajo za izvajanje manipulacij na bitnih vzorcih ali binarnih številih, ki vključujejo delo z posameznimi bitji. To hitro in enostavno dejanje, ki ga neposredno podpira procesor, se uporablja za nadzor vrednosti za primerjave in izračune.
Vsebina
Osnova za izračune
Binarni digitalni sistem uporablja samo dve števki - 0 in 1. Računalniki delujejo v binarni obliki, kar pomeni, da shranjujejo podatke in opravljajo izračune samo z ničli in tisti.
Čeprav lahko v dvojici uporabite eno binarno števko, ki v logiki predstavlja True (1) (true) ali False (0) (false), lahko za shranjevanje velikih številk in izvajanje zahtevnih funkcij uporabite več binarnih številk. Dejansko je lahko vsaka številka predstavljena v binarni obliki.
Uporaba
Bitwise operaterji se uporabljajo na naslednjih področjih:
Komunikacijski nizi, kjer imajo posamezni bitji v glavi, ki je priložen podatkom, pomembne informacije.
Vgrajena programska oprema za nadzor različnih funkcij v čipu in označevanje stanja strojne opreme z nadzorom posameznih bitov registra strojne opreme vdelanih mikrokontrolerjev.
Programiranje nizke stopnje za aplikacije, kot so gonilniki naprav, kriptografska programska oprema, programska oprema za dekodiranje videa, razdelilniki pomnilnika, programska oprema za stiskanje in grafike.
Priročno upravljanje velikih nizov celih števil v opravilih iskanja in optimizacije.
Bitni postopki, opravljeni z bitnimi zastavami, ki lahko vključujejo primerek vrste preštevanja za shranjevanje katere koli kombinacije vrednosti, opredeljenih na seznamu popisovalca.
Bitwise operacije - kako deluje?
Za razliko od konvencionalnih logičnih operaterjev (na primer +, -, *), ki delujejo z bajti ali skupinami bajtov, lahko bitni operaterji preverijo ali nastavijo posamezne bitove v bajtu. Bitni postopki nikoli ne povzročijo preplavljanja v celicah pomnilnika, ker je rezultat, pridobljen po izvedbi operacije, v območju možnih vrednosti za številsko vrsto.
Bitwise operaterji, ki se uporabljajo v družinah jezikov C (C #, C in C + +):
ALI (|) - rezultat je res, če je kateri od operandov resničen.
AND () - rezultat je pravilen samo, če sta oba operanda resnična. Uporabite ga lahko za konfiguriranje maske za preverjanje vrednosti določenih bitov.
XOR (^) - rezultat je res samo, če je eden od njegovih operandov resničen. Uporablja se pretežno za preklop določenih bitov. Prav tako pomaga zamenjati dve spremenljivki brez uporabe tretje.
NE (~) je bitno dopolnilo ali inverzija. Zagotavlja bitno dopolnilo operandu tako, da obrne svojo vrednost, tako da se vse ničle pretvorijo v tiste, vse enote pa se pretvorijo v ničle.
> (desno, Shift) in << (levo; Shift) je operator, ki premika bitove na število položajev, ki jih določi drugi operand v desno ali levo smer. Operaterji premika se uporabljajo za izenačitev bitov.
Primer dela
Bitwise operaterji so simboli, ki predstavljajo dejanja, ki jih je treba izvesti na posameznih bitih. Bitno delovanje deluje na dva-bitna vzorca enake dolžine, ki pozicionirajo posamezne bitove:
Logično delovanje IN () vsakega bitnega para rezultira v 1 (true), če sta prva in druga bitna enaka 1. V nasprotnem primeru je rezultat nič. Med drugimi aplikacijami se lahko AND uporablja za preizkušanje posameznih bitov v bitnem nizu, da bi ugotovili, ali so napačne ali resnične.
Poglejmo si bolj podroben primer:
IsOdd = (ValueToTest 1)! = 0.
Logična operacija OR (|) vsakega bitnega para ima za rezultat 1, če je prvi ali drugi bit 1. V nasprotnem primeru je rezultat nič. Logična operacija XOR (~) vsakega bitnega para ima za rezultat 1, če sta dva bita drugačna in 0, če sta enaka.
Logični operator NOT je prikazan kot ^. Levi premik (<<), desni pomik (>) in desni offset (offset) (offset) se včasih imenujeta kot bitni operaterji in se imenujejo operaterji bitnega pomika.
Prednostna naloga
Prednostna naloga (od najvišjega do najnižjega) pri bitnih operaterjih pri programiranju v C:
NE;
desno, Shift in levo, Shift);
IN;
XOR;
ALI.
Ti operandi se uporabljajo v večini programskih jezikov. Na primer, pri pisanju kode v jаvascriptu bo bitna operacija enaka kot zgoraj. To so posledica osnovnih matematičnih temeljev, na katerih temelji koda. Zlasti bitni operacije v Javi so v celoti identične z jаvascriptom.
Bit in programiranje v C in drugih jezikih
Bit je najmanjša enota merjenja, ki se uporablja za količinsko opredelitev računalniških podatkov. Vsebuje eno binarno vrednost - 0 ali 1.
Čeprav en bit lahko določi logično vrednost True (1) ali False (0), se le redko uporablja kot ločena enota. Zato so v računalniški trgovini bitovi pogosto združeni v 8-bitne skupine, ki se imenujejo bajti. Ker bajt vsebuje osem bitov, od katerih ima vsaka dve možni vrednosti, pri bitnih operacijah v C (programski jezik) ima en bajt 28 ali 256 različnih vrednosti.
Izrazi "bits" in "bytes" so pogosto zmedeni in celo uporabljeni med seboj, ker zveni enako, obe pa skrajšata s črko "B". Vendar, ko so pravilno zapisane, se biti okrepijo v spodnjem primeru "b", bajti pa se v zgornjem primeru prikažejo "B". Pomembno je, da teh dveh izrazov ne zamenjate, kajti vsaka meritev v bajtih vsebuje osemkrat več bitov. Na primer, majhna besedilna datoteka 4 KB vsebuje 4.000 bajtov ali 32.000 bitov.
Običajno se datoteke, pomnilniške naprave in kapacitete pomnilnika merijo v bajtih, hitrost prenosa pa se meri v bitih. Na primer, pomnilniška kartica SSD ima lahko zmogljivost 240 GB, medtem ko se lahko prenaša obremenitev pri hitrosti 10 Mb / s. Poleg tega se bitji uporabljajo tudi za opis arhitekture procesorja, kot je 32-bitni ali 64-bitni procesor.
Bitni postopki v pascalu
Raven bitov operacij v Pascalu vključuje delo z posameznimi bitji, ki so najmanjše enote podatkov na računalniku. Čeprav računalniki lahko manipulirajo z bitji, običajno shranjujejo podatke in izvajajo navodila v bitnih večkratnih vrednostih, imenovane bajtov. Večina programskih jezikov, vključno z bitnimi operacijami v Delphi, nadzorne skupine 8, 16 ali 32 bitov.
Opis postopka
Bitwise operator je simbol, ki predstavlja dejanja, ki delujejo s podatki na ravni bitov, in ne z bajtom ali velikimi podatkovnimi enotami, saj je pogostejše.
Večina konvencionalnih operaterjev dela z enim ali več bajtov, ki v večini sistemov vsebujejo osem bitov. Ker zagotavljajo večjo natančnost in zahtevajo manj virov, lahko operaterji s hitrostjo naredijo kodo hitrejšo in učinkovitejšo. Primeri uporabe bitnih operacij vključujejo:
šifriranje;
stiskanje;
grafika;
komunikacija o pristaniščih / vtičnicah;
programiranje vgrajenih sistemov;
stroji s končno stanje.
Bitan operater deluje z binarno predstavitvijo števila, ne pa s svojo vrednostjo. Operand se obravnava kot niz bitov, ne pa kot ena številka. Bitwise operaterji so podobni v večini podpornih jezikov - C, Java, jаvascript, Python in Visual Basic.
Zakaj je pomembno uporabljati?
Bitni postopki so nujno potrebni pri programiranju strojne opreme v vgrajenih sistemih. Vsak procesor ima enega ali več registrov (običajno določen pomnilniški naslov), ki nadzirajo, ali je prekinitev vklopljena ali izklopljena. Če želite omogočiti prekinitev, da zaženete običajen postopek, morate za to vrsto prekiniti nastaviti bitni bit, in kar je najpomembnejše, ne spreminjajte nobenega od drugih bitov v registru.Ko se sproži prekinitev, tipično nastavi bit v register stanja, tako da lahko ena rutinska služba določi točen vzrok za prekinitev. Preizkušanje posameznih bitov omogoča hitro dekodiranje vira prekinitev.
V številnih vgrajenih sistemih je skupni razpoložljivi RAM 64, 128 ali 256 bajtov. V tem okolju se en bajt običajno uporablja za shranjevanje več podatkovnih elementov in boolove zastave, nato pa jih uporabijo za namestitev in branje.
Kaj je sistem binarnih števil?
Predstavitev podatkov v računalniku: binarno kodiranje informacij
Način kodiranja informacij z uporabo številk. Binarno kodiranje
Binarna koda. Vrste in dolžina binarne kode. Povratna binarna koda
Malo je enota informacij
Podrobnosti o pretvarjanju bitov v bajte
Logično delovanje. Osnovne logične operacije
Kaj kodira in dekodira? Primeri. Metode kodiranja in dekodiranja informacij numerične, tekstovne in…
Zastopanje številk v računalniku. Predstavlja cela števila in realne številke v pomnilniku…
Zakaj je binarno kodiranje univerzalno? Načini programiranja
Aritmetična logična enota (ALU) - kaj je to?
Programiranje: Java. Vrste podatkov
Razširitveni zaboj - kaj je to?
Binarne številke: sistem binarnih števil
Informatika - sistem števil. Vrste številskih sistemov
Najbolj priljubljeni sistemi števil
Prevod iz binarnega v decimalno številko je preprost
Enote podatkov
Binarne kode: ocene, komentarji, vprašanja, odgovori
Binarni odnosi in njihove lastnosti
Binarni sistem: aritmetične operacije in obseg