Relációs műveletek - stadopedia

A bitműveletek eredményei

A számítógép memóriájában tárolt adatok ismert, hogy egy bit sorozatot képviselnek, azaz i. a nullák és a nullák sorrendje. Például bármely típusú int típus 2 bájtot foglal el a memóriában, vagyis 16 bitet. Meg lehet tekinteni két módon: vagy, mint egész (és tette műveletek *, /, +, -.%), Vagy a bitek sorozatát, lehetőleg bites műveleteket.







A bitenkénti műveleteket egymástól függetlenül végzik az egyes adatbitek fölött. Ha a művelet két helyen van, akkor az operandusok megfelelő bitjein kerül végrehajtásra.

C-ban a következő bit műveletek állnak rendelkezésre:

bit negáció (egyszeri),

bit "és" (két hely),

^ bitwise "exkluzív vagy" (bináris),

| | bit "vagy" (két hely).

Ezeknek a műveleteknek az eredménye egy értéktartományt határoz meg a két operandus bitjének összes lehetséges kombinációjára.

Az első példa azt mutatja, hogy a |. Segítségével beállíthatja a kiválasztott operandus biteket:

char a, b; / * 00011010 = 26 * /

b = a | 26 / * b = 31 * / / * b = 00011011 = 31 * /

A következő példa bemutatja, hogyan működik a művelet akkor a nagy megbízhatóságú byte-ot nullázhatja:

char a, b; / * a = 00101101 = 45 * /

a = 45; / * 00001111 * /

/ * b = 00001101 = 13 * /

A bit műveletek közé tartozik a műszakváltás <<и>>:

egy <





a >> b eltolja a a bitjeit jobbra b pozícióval.

a = 26; / * a = 00011010 = 26 * /

b = a <<2; /* b = 01101000 = 104 */

A balra történő elmozdulás megegyezik a megfelelő mértékű 2-es szorzással. Jobbra váltás - 2-el a megfelelő mértékig osztva.

Minden bit műveletet balról jobbra hajtanak végre. A következő sor a bit műveleteket mutatja a prioritás csökkentése érdekében.

Kétbites műveletek esetén további hozzárendelési műveletek vannak meghatározva:

egy <<= b; эквивалентно a = a <

a >> = b; egyenértékű a = a >> b,

egy = b; egyenértékű a = a-val b,

a ^ = b; egyenértékű a = a ^ b,

a | = b; egyenértékű a = a | -val b.

Két operációs rendszert terveztek az operandusok összehasonlítására. A C nyelvben hat kapcsolatfelvétel van:

> = nagyobb vagy egyenlő,

<= меньше или равно,

A kapcsolat működésének hatása az első és a második operandus összehasonlítása. Ha az operandusok nem felelnek meg a reláció állapotának, akkor a művelet eredménye nulla, azaz. a feltétel hamis. Ha az operandusok kielégítik a reláció állapotát, akkor a kapcsolat eredménye nem nulla, azaz. a feltétel igaz.

b = (a + 5 <= 4 ); /* b = 0 */

A fentiekből következik, hogy nincs speciális logikai adattípus a C nyelvben. Ez helyettesíti a típus és a logikai fogalmát „false” felel meg a 0 érték és logikai fogalom az „igazság” - bármely más, mint 0 egész szám.

A kapcsolatok balról jobbra haladnak. Tevékenységének fuzzy megértésével általánosan lehetséges, hogy helytelen eredményt kap. Például a C szintaxisának szempontjából a

Ahhoz, hogy ez a kifejezés matematikailag értelmes legyen, azt két részre kell osztani: a


Kapcsolódó cikkek