Bitové operace. Programování v C a C ++
Bitové operace jsou operace používané k provádění manipulací na bitových vzorcích nebo binárních číslech, které zahrnují práci s jednotlivými bitmi. Tato rychlá, jednoduchá akce, přímo podporovaná procesorem, slouží k ovládání hodnot porovnání a výpočtů.
Obsah
Základ výpočtů
Binární digitální systém používá pouze dvě číslice - 0 a 1. Počítače pracují v binárním formátu, což znamená, že ukládají data a provádějí výpočty pouze pomocí nul a nuly.
Ačkoli jedna binární číslice může být použita k reprezentování True (1) (true) nebo False (0) (false) v logice, můžete použít několik binárních číslic pro ukládání velkých čísel a provádění složitých funkcí. Ve skutečnosti může být libovolné číslo zobrazeno v binárním formátu.
Aplikace
Bitové operátory se používají v následujících oblastech:
Sestavy komunikace, kde jednotlivé bity v hlavičce připojené k datům přenášejí důležité informace.
Vestavěný software pro ovládání různých funkcí v čipu a určení stavu hardwaru pomocí řízení jednotlivých bitů hardwarových registrů vestavěných mikrokontrolérů.
Programování na nízké úrovni pro aplikace, jako jsou ovladače zařízení, kryptografický software, software pro dekódování videa, alokátory paměti, kompresní software a grafiku.
Pohodlná správa velkých množin celých čísel při hledání a optimalizaci.
Bitové operace prováděné s příznaky bitů, které mohou obsahovat instanci typu výčtu pro ukládání jakékoliv kombinace hodnot definovaných v seznamu výčtu.
Bitové operace - jak to funguje?
Na rozdíl od konvenčních logických operátorů (například +, -, *), které pracují s bajty nebo skupinami bajtů, bitové operátory mohou zkontrolovat nebo nastavit jednotlivé bity v bajtu. Bitové operace nikdy nespouštějí přetečení v paměťových buňkách, protože výsledek získaný po provedení operace je v rozsahu možných hodnot pro číselný typ.
Bitové operátory používané v jazycích C (C #, C a C ++):
OR (|) - výsledek je true, pokud je některý z operandů pravdivý.
AND () - výsledek je správný pouze tehdy, jsou-li oba operandy pravdivé. Může být použit pro konfiguraci masky pro kontrolu hodnot určitých bitů.
XOR (^) - výsledek je pravdivý pouze tehdy, když je jeden z jeho operandů true. Používá se hlavně k přepínání určitých bitů. Pomáhá také nahradit dvě proměnné bez použití třetího.
NOT (~) je bitový doplněk nebo inverze. Poskytuje bitový doplněk k operandu změnou jeho hodnoty tak, aby všechny nuly byly převedeny na ty, a všechny jednotky jsou převedeny na nuly.
> (vpravo; Shift) a << (vlevo; Shift) je operátor, který posune bity na počet pozic určených druhým operandem v pravém nebo levém směru. Operátory posunu se používají k vyrovnání bitů.
Příklad práce
Bitové operátory jsou symboly reprezentující akce, které mají být provedeny na jednotlivých bitech. Bitová operace pracuje s dvoubitovými vzory stejné délky a jejich jednotlivé bity se nastavují takto:
Logická operace AND () každé bitové dvojice vede k 1 (true), pokud první a druhý bit jsou rovny 1. V opačném případě je výsledek nula. Mezi další aplikace lze AND použít k testování jednotlivých bitů v bitovém řetězci, aby zjistili, zda jsou nepravdivé nebo pravdivé.
Podívejme se podrobněji na příklad:
IsOdd = (ValueToTest 1)! = 0.
Logická operace OR (|) každé dvojice bitů vede k 1, pokud je první nebo druhý bit 1. V opačném případě je výsledek nula. Logická operace XOR (~) každé dvojice bitů vede k 1, pokud jsou dva bity odlišné a 0 pokud jsou stejné.
Logický operátor NOT je reprezentován jako ^. Levý posun (<<), pravý posun (>) a pravý posun nulové výplně (>>) jsou někdy označovány jako bitové operátory a nazývají se operátory bitového posunu.
Stanovení priorit
Prioritní pořadí (od nejvyšší k nejnižší) u bitových operátorů při programování v C:
NE;
doprava, Shift a doleva, Shift);
AND;
XOR;
NEBO.
Tyto operandy se používají ve většině programovacích jazyků. Například při psaní kódu v jаvascriptu bude bitová operace stejná jako výše. To je způsobeno základními matematickými základy, na kterých je kód založen. Konkrétně jsou bitové operace v jazyce Java zcela totožné s jаvascript.
Bit a programování v C a dalších jazycích
Bit je nejmenší měrná jednotka používaná pro kvantifikaci počítačových dat. Obsahuje jednu binární hodnotu - 0 nebo 1.
Přestože jeden bit může určit logickou hodnotu True (1) nebo False (0), je zřídka používán jako samostatná jednotka. Proto v obchodě s počítači jsou bity často seskupovány do 8bitových clusterů nazývaných bajty. Protože byte obsahuje osm bitů, z nichž každá má dvě možné hodnoty, v bitových operacích v jazyce C (programovací jazyk) jeden byte může mít 28 nebo 256 různých hodnot.
Pojmy "bity" a "bajty" jsou často zaměňovány a dokonce se používají zaměnitelně, jelikož to zní stejně a oba jsou zkráceny písmenem "B". Při správném psaní jsou však bity zkráceny malým písmenem "b" a bity jsou rozřezány velkými písmeny - "B". Je důležité, aby tyto dva výrazy nebyly zaměněny, jelikož jakékoli měření v bajtech obsahuje osmkrát více bitů. Například malý textový soubor o velikosti 4 KB obsahuje 4 000 bajtů nebo 32 000 bitů.
Obvykle jsou soubory, úložná zařízení a kapacita paměti měřeny v bajtech a datové rychlosti jsou měřeny v bitech. Například paměťová karta SSD může mít kapacitu 240 GB, zatímco zatížení lze přenášet rychlostí 10 Mb / s. Kromě toho se bity také používají k popisu architektury procesoru, například 32bitového nebo 64bitového procesoru.
Bitové operace v pascalu
Úroveň bitů v operacích Pascal zahrnuje práci s jednotlivými bity, které jsou nejmenšími jednotkami dat v počítači. Přestože jsou počítače schopny manipulovat s bity, většinou ukládají data a provádějí pokyny v bitových násobných hodnotách, nazývaných bajty. Většina programovacích jazyků, včetně bitových operací v Delphi, řídí skupiny 8, 16 nebo 32 bitů.
Popis procesu
Bitový operátor je symbol představující akci, která pracuje s daty na úrovni bitů, nikoliv s byty nebo velkými datovými jednotkami, protože je častější.
Většina běžných operátorů pracuje s jedním nebo více bajty, které ve většině systémů obsahují osm bitů. Protože poskytují více přesnosti a vyžadují méně zdrojů, bitové operátory mohou kód rychleji a efektivněji. Příklady použití bitových operací zahrnují:
šifrování;
komprese;
grafika;
komunikace na přístavech / zásuvkách;
programování vestavěných systémů;
stroje s konečným stavem.
Bitový operátor pracuje s binárním znázorněním čísla, ne jeho hodnoty. Operand se považuje za sadu bitů, nikoliv za jedno číslo. Bitové operátory jsou podobné ve většině podpůrných jazyků - C, Java, jаvascript, Python a Visual Basic.
Proč je důležité používat?
Bitové operace jsou naprosto nezbytné při programování hardwarových registrů ve vestavěných systémech. Každý procesor má jeden nebo více registrů (obvykle specifická adresa paměti), které monitorují, zda je přerušení zapnuto nebo vypnuto. Chcete-li povolit přerušení spuštění normálního procesu, je třeba nastavit bit oprávnění pro tento typ přerušení, a co je nejdůležitější, neměňte žádný z ostatních bitů v registru.Když je spuštěno přerušení, typicky nastavuje bit v registru stavu, takže jeden servisní rutina může určit přesnou příčinu přerušení. Testování jednotlivých bitů umožňuje rychle dekódovat zdroj přerušení.
V mnoha vestavěných systémech může být celková dostupná paměť RAM 64, 128 nebo 256 bajtů. V tomto prostředí se obvykle používá jeden bajt pro ukládání více datových položek a booleovských příznaků a bitové operace se používají k jejich instalaci a čtení.
- Co je systém binárních čísel?
- Binární kód. Typy a délka binárního kódu. Reverzní binární kód
- Jak převést bajty na megabajty a zpět?
- Trochu je jednotka informací
- Podrobnosti o převodu bitů na bajty
- Logická operace. Základní logické operace
- Co je kódování a dekódování? Příklady. Metody kódování a dekódování informací číselných, textových…
- Znázornění čísel v počítači. Reprezentace celých čísel a reálných čísel v paměti počítače
- Proč je binární kódování univerzální? Programovací metody
- Aritmetická logika (ALU) - co to je?
- Programování: Java. Typy dat
- Rozšiřovací zásobník - co je to?
- Binární čísla: systém binárních čísel
- Co jsou čísla s pohyblivou čárkou?
- Systém informatiky - čísel. Typy číselných systémů
- Nejpopulárnější systémy čísel
- Prezentace informací v počítači
- Překlad z binárního na desetinný je snadný
- Binární kódy: recenze, komentáře, otázky, odpovědi
- Římský číselný systém je krásný, ale obtížný?
- Typy dat