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