Унар айириш амали
Унар айириш амали (-) сонли типдаги операнднинг ишорасини унинг аксига айлантириш учун хизмат қилади.
Мантиқий айириш ( !) амали - мантиқий bool типли катталиклар учун мўлжалланган. Мантиқий айириш амали операнд қийматини унинг аксига ўзгартириш учун хизмат қилади. Яъни мантиқий айириш амали қўлланганда операнднинг қиймати true бўлса, унинг қиймати false га алмшади, агар операнднинг қиймати false бўлса, унинг қиймати true га алмашади.
Разрядли айириш ( ~ ) амали – кўпинча битли айириш амали деб ҳам юритилади. Разрядли айириш амали int, uint, long или ulong типли операнднинг иккилик кодидаги ҳар бир разрядини инверсия қилиш учун қўлланилади. Яъни ушбу амални қўлллаш натижасида операнднинг иккилик кодидаги 1 га тенг бўлган разрядлари 0 га, 0 га тенг бўлган разрядлари эса 1 га алмашади. Масалан:
int v = 153; // 153 нинг иккилик кодидаги қиймати 10011001 га тенг
int n = ~v; // натижа: n нинг қиймати 102 га,унинг иккилик коддаги қиймати эса 01100110 га тенг бўлади.
Унар амалларда иштирок этувчи операнд битта бўлади.
* Унар қўшиш амали қўлланганда операнднинг арифметик қиймати ўзгрмайди, лекин агар унинг типи учун арифметик операция аниқланмаган бўлса унинг типи ўзгариши мумкин.
Типларни ошкор ўзгартириш амали
Типларни ошкор ўзгартириш амали операнд қийматининг типини бошқа типга ўзгартириш учун қўлланилади. Ушбу амални қўллаб, каттароқ типли қийматларни кичикроқ типга ўзгартирилса, қийматларда йўқотиш кузатилади.
Синтаксиси:
( тип ) ифода;
Бу ерда тип - ифода қийматини қайси типга ўзгартириш лозимлигини билдирувчи тип, ифода эса - ўзгарувчи ёки ўзгармас номи ва ш.к.
Масалан:
long b = 300;
int a = (int) b; // Маълумот йўқолиши юз бермайди
int d = (byte) a; // Маълумот йўқолади
Кўпайтириш, бўлиш ва қолдиқли бўлиш
Кўпайтириш амали(*) икки операндни кўпайтириш орқали ҳосил бўлган натижани қайтаради. Стандарт кўпайтириш амали int, uint, long, ulong, float, double и decimal типлари учун аниқланган. Бошқа типли катталиклар учун ҳам кўпайтириш амалини қўллаш мумкин, фақат ушбу тип учун автоматик ўзгартириш амалга ошиши лозим бўлиши керак. Натижанинг типи - агар катта типли операнд қиймати int типидан кичик бўлмаса, шу операнд типида, акс холда энг камида int типида бўлади.
Бўлиш амали ( / ) – биринчи операндни иккинчисига бўлиш учун қўлланилади. Стандарт бўлиш амали int, uint, long, ulong, float, double и decimal типлари учун аниқланган. Бошқа типли катталиклар учун ҳам бўлиш амалини қўллаш мумкин, фақат ушбу тип учун автоматик ўзгартириш амалга ошиши лозим бўлиши керак. Натижанинг типи энг камида int типида бўлади.
Бўлиш амали бажарилишида агар операндлар ҳар иккиси ҳам бутун типли бўлса, натижа автоматик яхлитланади. Агар бўлувчи 0 бўлса, System.DivideByZeroException хатолиги генерация қилинади.
Агар операндларнинг бири ҳақиқий типли бўлса, натижа ҳақиқий сон чиқади ва яхлитланмайди.
Қодиқли бўлиш амали( % ) турли типлар учун турли формула билан ҳисобланади. Агар операдларнинг ҳар иккиси бутун типли бўлса, натижа x - (x / y) * y формула орқали ҳисобланади. Агар бўлувчи 0 га тенг бўлса хатолик автоматик тарзда генерация қилинади.
Агар операндларнинг хеч бўлмаса биттаси ҳақиқий типли бўлса, натижа x – n * y формула билан ҳисобланади. Бу ерда n – сони - x ни y га бўлишдан ҳосил бўлган натижадан кичик ёки унга тенг бўлган энг катта бутун сон.
Do'stlaringiz bilan baham: |