51
1-операнд 1 0 1 0 0 1 1
2-операнд
1 1 0 1 0
1
Нәтиже 1 1 0 0 1 1 0
1-операнд 0 0 1 1
2-операнд 0 1 0 1
Нәтиже 0 1 1 0
1-операнд 1 0 1 0 0 1 1
2-операнд 1
1 0 1 0 1
Нәтиже 0 0
1 0 0 0
1
1-операнд 0 0 1 1
2-операнд 0 1 0 1
Нәтиже 0 0 0 1
1-операнд 1 0 1 0 0 1 1
2-операнд
1 1 0 1 0 1
Нәтиже 1 1 1 0 1 1 1
1-операнд 0 0 1 1
2-операнд 0 1 0 1
Нәтиже 0 1 1
1
оңға (>>) ығыстыру кезінде босаған разрядтар, бірінші операнд таңбасыз типте
болғанда, нӛлдермен толтырылады. Егерде бірінші операнд таңбалы типте
болса, онда босаған орындар таңба разрядымен толтырылады. Ығыстыру
операциялары толып кету (переполнение) және санның дәлдігін жоғалту
әрекеттерін есепке алмайды.
Екілік разрядтар бойынша орындалатын операциялар ( &, | ,
^
) тек
бҥтін санды типтегі екілік жҥйедегі операндтарға қолданылады. Бҧл
операцияларды орындау барысында операндтар биттер бойынша қарас-
тырылады (бірінші операндтың бірінші биті екінші операндтың бірінші
битімен, бірінші операндтың екінші биті екінші операндтың екінші битімен,
т.с.с. салыстырылады).
Разрядтық конъюнкцияда немесе разрядтық ЖӘНЕ (операция & болып
белгіленеді) операциясында логикалық кӛбейту амалы орындалады да, тек екі
операндтың да сәйкес орындардағы
разрядтары 1-ге тең болған жағдай-
да нәтижелік бит 1-ге тең болады.
Разрядтық дизъюнкцияда немесе разрядтық НЕМЕСЕ (операция | болып
белгіленеді) операциясында логикалық қосу амалы орындалады да, екі
операндтың тек біреуінің немесе
екеуінің де сәйкес орындардағы
разрядтары 1-ге тең болған жағдай-
да нәтижелік бит 1-ге тең болады.
Разрядтар бойынша аластайтын НЕМЕСЕ (операция ^ болып белгіленеді)
операциясында екі операндтың тек біреуінің ғана сәйкес орындарындағы
разряды 1-ге тең болған жағдайда
нәтижелік бит 1-ге тең болады.
Мысалы:
#include
int main() {
cout << "\n 6 & 5 = " << (6 & 5);
cout << "\n 6 | 5 = " << (6 | 5);
cout << "\n 6 ^ 5 = " << (6 ^ 5);
return 0;
}
Программа жҧмысының нәтижесі:
6 & 5 = 4
6 | 5 = 7
6 ^ 5 = 3
Логикалық операциялар (&& және ||). ЖӘНЕ (&&) мен НЕМЕСЕ (||)
логикалық операцияларының операндтары арифметикалық типте немесе
1 1 0
1 0 1
1 1 1
1-операнд 1 1 0
2-операнд 1 0 1
Нәтиже
1 0 0
1 1 0
1 0 1
0 1 1
Операция: & | ^
52
нҧсқауыш тҥрінде бола алады, мҧнда әрбір операциядағы операндтар типтері
әр тҥрлі бола береді. Операциялар орындалуы кезінде типтерді тҥрлендіру
жасалмайды, тек әр операндтың нӛлге эквиваленттілігі бағаланады (нӛлге тең
операнд false, нӛлге тең емесі – true болып саналады).
Логикалық операцияның нәтижесі true немесе false болады. Логикалық
ЖӘНЕ операциясындағы екі операндтың да мәні true болғанда ғана оның
нәтижесі true болады. Ал логикалық НЕМЕСЕ операциясындағы екі
операндтың бірінің мәні true болғанда, оның нәтижесі true болады. Логикалық
операциялар солдан оңға қарай орындалады. Егер бірінші операндтың мәні
операция нәтижесін анықтауға жеткілікті болса, онда екінші операнд мәні
есептелмейді.
Сонымен, бірнеше шарттық ӛрнектерді біріктіру ҥшін келесідей логикалық
операциялар қолданылады:
1) ЖӘНЕ && (and) операциясы;
f1 && f2
2)
НЕМЕСЕ
(or) операциясы;
f1
f2 (
коды – 124 )
3)
ТЕРІСТЕУ ! (not) операциясы. !f1 (!true = false, ! false = true)
Терістеу (ЕМЕС) операциясының приоритеті ӛте жоғары, одан тек жақша
ішіндегі мәндердің проритеті жоғарылау болады. && операциясының
приоритеті
(or) операциясымен салыстырғанда жоғары, ал осы екеуінің
приоритеттері қатынас операцияларымен салыстырғанда тӛмен, меншіктеу
операциясынан жоғары болады.
3.1. Меншіктеу операторы
Меншіктеу операторы символдар арқылы жазылады. Кез келген ;
таңбасымен аяқталатын ӛрнек меншіктеу операторы болып табылады. Ӛрнектің
бір тҥріне бос оператор жатады, ол жай ; операторы.
С тілінде меншіктеу операторының бірнеше тҥрі бар. Жалпы меншіктеу
операторының жазылу форматы мынадай болады:
<айнымалы> = <айнымалы> <операция> <өрнек>;
Мҧны С тілінде қысқаша былай жазуға болады:
<айнымалы> <операция> = <өрнек>;
Тӛменде бірнеше мысал келтірілген.
a=a+b;
a+=b;
a=a*b;
a*=b;
a=a-b;
a-=b;
a=a/b;
a/=b;
С тілінде тізбектеле жазылған меншіктеу операцияларын да қолдануға
болады. Мысалы:
sum = a = b;
Мҧнда меншіктеу операторы оңнан солға қарай орындалады, яғни b-ның
мәні a-ға меншіктеледі, ал а-ның мәні sum-ға меншіктеледі.
Меншіктеу операторын былай да жазуға болады:
1) a = (b = 1) +2;
мҧнда a=3, b=1.
2) a = b = 1 + 2;
ал мҧнда a = 3, b = 3.
Достарыңызбен бөлісу: |