2012.08.10.
16:56

Írta: harsanyireka

Hivatkozások 8.: Növelő / csökkentő és bitenkénti operátorok

++ (növelés)

- - (csökkentés)

szintaxis:

x++; 
//x érékét növeli eggyel és visszatér az x régi értékéhez
++x;
//x értékét növeli eggyel és visszatér az x új értékéhez x-- ;
//x értékét csökkenti eggyel és visszatér az x régi értékéhez
--x ;
//x értékét csökkenti eggyel és visszatér az x új értékéhez

/// x egy integer vagy egy long

  

"Léptető operátorok:
A C++-ban gyakran használatos 
++ : növelő operátor (increment) 
-- : csökkentő operátor (decrement)
Precedenciájuk megegyezik a fenti sorrenddel.
Ezeknek az operátoroknak van úgynevezett előrevetett (prefixes) és hátravetett (postfixes) formájuk. A postfixes forma kiértékelése előbb történik, mint a prefixesé. Alapvetően megegyeznek az eggyel való növeléssel, vagy csökkentéssel. Az x++ és ++x megegyezik azzal, hogy x=x+1; az x-- és --x pedig egyezik az x=x-1 kifejezéssel. Azon kívül, hogy egyszerűbb leírni, az x++ gyorsabban hajtódik végre, sőt, a ++x még gyorsabban. Mégis miért van két alakjuk? Előre és hátravetett formájuk? 
Ha kifejezésben használjuk őket, a hátravetett forma a kifejezés kiértékelése után növeli a változó értékét, míg az előrevetett forma esetén már a kifejezés végrehajtásakor a növelt értéket fogja használni.
Pl.:
Ha az a változónak a 15 értéket adtuk, akkor az alábbi kifejezésekben az első esetben 35-öt kapunk eredményül, miközben az a értéke 16-tá változik, míg a második esetben 36-ot kapunk eredményül, és az a értéke ugyancsak 16 lesz. Sőt, ha a két kifejezést egymás után írjuk egy programon belül, akkor először 35-öt kapunk, a=16 mellett, majd 37-et, a=17 mellett:
20 + a++;
20 + ++a;"
http://prog201.blogspot.hu/2012/03/c-003-operatorok.html

 

arduino példa:

x = 2;
y = ++x;      // x most 3, y 3-t tartalmaz
y = x--;      // x 2 ismét, y még mindig 3 
 
 

 

+= (összeadás és értékadás)

- = (kivonás és értékadás)

*= (szorzás és értékadás)

/= (osztás és értékadás)

Elvégez egy matemaitkai műveletet egy változón, egy másik változóval vagy állandóval.

szintaxis:

x += y;   // egyenértékű a következő kifejezéssel: x = x + y;
x -= y;   //  x = x - y; 
x *= y;   //  x = x * y; 
x /= y;   //  x = x / y; 

//// x egy változó, y egy állandó vagy egy változó
példa:
x = 2;
x += 4;      // x = 6
x -= 3;      // x = 3
x *= 10;     // x = 30
x /= 2;      // x = 15
 
 

  

A bitenkénti operátorok úgy kezelik az operandusaikat mint bitek halmazát, nem úgy, mint decimális, hexadecimális vagy oktális számok.

  

&= (bitenkénti ÉS és értékadás)

Akkor tér vissza eggyel, ha mindkét operandusa egyes:

   0  0  1  1    operandus 1
   0  1  0  1    operandus 2
   ----------
   0  0  0  1    (operandus 1 & operandus 2) - visszatérő érték

 

szintaxis:

x &= y;   // egyenértékű ezzel: x = x & y; 
// x egy char, int vagy long változó
// y egy char, int vagy long integer

 

példa:

myByte =  10101010;

myByte &= B1111100 == B10101000;

 

 

|= (bitenkénti megnegedő VAGY és értékadás)

Akkor tér vissza eggyel, ha valamelyik operandusa egyes.

   0  0  1  1    operandus 1
   0  1  0  1    operandus 2
   ----------
   0  1  1  1    (operandus 1 | operandus 2) - visszatérő érték

 

szintaxis:

x |= y;   // egyenértékű ezzel: x = x | y; 
// x egy char, int vagy long változó
// y egy char, int vagy long integer

 

példa:

myByte =  B10101010;

myByte |= B00000011 == B10101011;

 

 

forrás: http://arduino.cc/en/Reference/Increment

http://arduino.cc/en/Reference/IncrementCompound, 

http://arduino.cc/en/Reference/BitwiseCompoundAnd,  

http://arduino.cc/en/Reference/BitwiseCompoundOr, 

http://hu.wikipedia.org/wiki/C%2B%2B#Az_oper.C3.A1torok_.C3.B6sszefoglal.C3.A1sa 

cc-by-sa3s.jpg

 

Szólj hozzá!

Címkék: hivatkozások

A bejegyzés trackback címe:

https://harsanyireka.blog.hu/api/trackback/id/tr464692229

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása