Bit maskering i C ++

Bit maskering i C ++
Bitmaskering er en prosess som brukes til å få tilgang til en spesifikk bit i byte av data. Dette fenomenet brukes når du utfører iterasjonsprosessen. En bitmask sies å være en maske av en sekvens av n -bits som brukes til å kode en del av samlingen vår. Disse elementene i masken kan settes eller kan ikke være. Det er bitvis operatører for å opprette eller bytte bitene. Disse operatørene brukes til å slå på av biten eller omvendt.

For å bruke C ++ -programmene til å utføre dem på Linux, må du ha Ubuntu -filen konfigurert og i Running State. Dessuten må brukeren ha litt kunnskap om C ++ -språket. C ++ kildekoder er skrevet i Text Editor. Mens for utførelsesprosessen, bruk Ubuntu -terminalen.

En bitmaske sies også å være en enkel maske som er en sekvens av n bits. Den koder for undergruppen av samlingen. Elementet 'i' er til stede i delmengden av 'ith' -biten er satt i masken. For settet med elementer som har nth byte, er det sjanser til å ha en 2N -maske som tilsvarer en undergruppe.

Hvorfor brukes bitmasking

Bitmaskingsprosessen lagrer forskjellige verdier i de samme tallene. Tenk for eksempel på et sett der s = 1, 2, 5, 8, 6 og 7. For å representere settet med 2, 5, 7, kan vi bruke hvilken som helst bitmask 010110.

Operasjonene som er utført av bitmappene er som følger:

Sett 'ith' -biten
Dette gjøres ved å vurdere en verdi 'x'. Vi kan utføre x | = x<

Ikke set 'ith' -biten
For å fjerne biten, må det være litt som allerede er satt av brukeren eller standard. Så den bestemte biten kan være lett å være ikke sett. Så for det bruker vi operatører x & = ~ (x <

Veksler litt
Dette er en prosess der vi bruker en operatør x^= x<

Med enkle ord, hvis du vil stille litt, betyr det at hvis i-th-bit er 0, så er det satt til 1. Og hvis det allerede er 1, så la det være uten endring. Tilsvarende, i tilfelle av litt klarering, hvis i-th bit er 1, bør den ryddes til 0. Og hvis det allerede er 0 nå, ikke endre det; la det være på den måten det allerede er. Uansett hvor du kan veksle litt, hvis i-th-biten er 1, kan du nå endre denne biten til 0. Og hvis det allerede er 0, må du nå bytte tilbake til 1 igjen.

Eksempel på bitmaskering

Et grunnleggende konsept med bitmaskering blir prøvd her for å forklare arbeidet med bitmaskering. Dette eksemplet involverer alle tre operasjoner av bitmaskering som er beskrevet ovenfor i denne guiden.

Starter nå med inngangs- og utgangsstrømmen for å involvere lesing og skrive inn i filen.

#inkludere

Vi har først hoppet til hovedprogrammet til kildekoden slik at koden blir enklere og godt organisert. Dessuten vil det bli mer forståelse for de nye innen programmering. Hele programmet er et bruker-interaktivt system. Som trenger brukerinvolvering i hvert trinn i løpssystemet. Det første trinnet i hovedprogrammet er at vi ber om nummeret som operasjoner blir brukt fra brukeren. Før du spør, er en variabel satt til å godta verdien som er angitt av brukeren.

Når brukeren skriver inn nummeret, gjennomgår det mange prosesser, som en stundsløyfe brukes. Denne sløyfen sikrer tilgjengeligheten av tall hver gang programmet blir utført. Når nummeret er lagt inn, viser systemet 3 alternativer til brukeren, hvis brukeren ønsker å angi en bitmask eller hvis han vil tømme bitmasken, og den tredje skal veksle verdien. Og på slutten blir en bruker bedt om å velge en av dem. For å navigere gjennom alle disse operasjonene, må vi ha en slik logikk som bare vil velge et enkelt alternativ som brukeren legger inn. Mens alle operasjoner forblir ledige på den tiden.

Så vi bruker en bryterklæring her. Når brukeren går inn i valget hans, lagres dette i en variabel, og deretter på den variabelen utfører vi en bryterklæring. Hver linje i bryterklæringen inneholder en funksjonsanrop for hvert alternativ. Uansett hvilket alternativ brukeren velger, vil systemet utføre det aktuelle programmet for alternativet. Vi bruker en bruddserklæring med alle alternativene for bryteruttalelsen. For når ett alternativ er fullført, må du stoppe programmet fra videre utførelse automatisk til det blir bedt om å kjøre programmet.

Vurder nå det første alternativet; Den første funksjonen handler om å sette en maske. Den inneholder variabelen for å lagre nummeret som er angitt av brukeren. Dette tallet vil gjennomgå et stykke aritmetisk operasjon for å gi verdien som er før og deretter etter bitverdien.

X | x <

Når denne operasjonen utføres fullstendig, blir verdien etter å ha gått gjennom operasjonene behandlet igjen, og deretter vises verdien.

Det neste alternativet er å fjerne den allerede opprettet eller den nye masken. Dette vil også fjerne den første og den neste fremste verdien av biten.

X & = ~ (x <

Vi har forklart hver funksjon separat for å gjøre konseptet klart for brukeren. Dette vil også gi den forrige og neste verdien av bitmasken.

X^= x <

Etter å ha skrevet koden, lagre den i filen og lagre filen med en utvidelse av '.c '. For å utføre koden, trenger vi en 'G ++' -kompilator som vil kompilere koden. 'bit. C 'er navnet på filen.

$ g ++ -o bit bit.c
$./bit

Når vi utfører koden, er kontrollen i hovedprogrammet når du velger muligheten til funksjonen, og i henhold til funksjonen blir den spesifikke funksjonssamtalen gjort, og kontrollen sendes mot den aktuelle funksjonen. I følge bildet skriver vi for eksempel først nummeret og velger deretter alternativet.

Vi vil velge alle tre alternativene linjemessig. For det første har vi valgt det første alternativet for å stille bitmasken. I henhold til funksjonen, litt før og etter at den nåværende biten vises tilfeldig når utførelsen er fullført for funksjonen.

Igjen vises alternativene. Nå vil vi fjerne '3' -posisjonen. Her igjen, før og etter rydding, vises verdien.

Nå igjen, når vi ser opsjonslisten, velger du det siste alternativet, vekslingsalternativet. Skriv inn den biten du vil veksle. Den forrige vippet og deretter vises etter å ha vippet verdiene.

Denne prosessen vil bli videreført til du fortsetter å legge inn verdiene på opsjoner. Hvis du vil avslutte systemet, trykker du 'Ctrl + C ”.

Konklusjon

Bitmaskeringsprosessen er gunstig for iterasjonsprosessene. Vi har brukt et kort eksempel for å forklare prosessen med innstilling, fjerne masken og slå biten. Vi kan også endre det ovennevnte eksemplet i henhold til våre programbehov. Vi håper denne artikkelen vil hjelpe deg med å forstå maskeringsprosessen til biter.