ПредишенСледващото

Изразяване в C ++ - е последователност от операнди, операции и разделители. Операнди - са променливи, константи, или други изрази. Разделители в C ++ е код [] () <>. ;. * = #, Всеки от които изпълнява своята функция. Експресията може да се състои от една или повече операции и да се определи изпълнението на няколко елементарни стъпки в превръщането на информация. Compiler съответствие със стриктното тълкуване на заповедта на изрази, наречен правила за предимство. Тази цел може да бъде променена, ако някои части на изразяването затворени в скоби. Елементарната операция на информацията, дадена от операцията на трансформиране знак. Според броя на операнди, участващи в операцията се прави разлика между две групи операции: едноместно (един операнди) и бинарни (два операнда). Според вида на операцията се извършва разграничи аритметика побитовото, логически задача, релационни оператори и др.

Основни операции и техния приоритет

C ++ съдържа стандартен набор от аритметични операции на добавяне (дадено от знак +), се изважда (-), се размножават (*), деление (/) не изискват специални обяснения. C ++ за конкретна операция определяне са нарастване на остатък (%) (++) и намаляване (-). Операция% обяснява следния пример:

Int а = 5, б = 2, С = 0, г;

D = А% В; / * D = 1 - остатък от деление число 5/2 * /

D = А% С; / * Грешка от участък от 0 * /

Операциите по прираста и декремент съответно нарастване и спад на операнд 1. Операцията ++ и - могат да се прилагат само за променливите. Има два вида записи: префикс когато операнд правото на експлоатация плоча и Postfix, когато операнда се намира в предната част на операцията по знак. Увеличаването на префикс образуване на операнд 1 и увеличава стойността се използва в експресията се извършва първо. В форма Postfix първия операнд стойност се приема, и едва след това се увеличава с 1. Например:

Int а = 0, Ь = 1, в;

с = с ++; / * С е 0, а е 1 * /

с = ++ А; / * А с = 2, А = 2 * /

напиши операции са форма на ++ и - ефект в съставни думи. Ясно е, че няма разлика между един експресия ++; и ++ А; В-; и Ь;

логически операции Побитови

C ++ поддържа следните побитови логически операции:

побитовото логическа (И);

^ Побитова събиране по модул 2 (XOR - XOR);

| побитова логически ИЛИ (OR);

Всеки бит на резултата определя от битове на операндите, както е показано в таблицата. 8.

Инверсията изисква използването на един единствен операнд по право знак

Резултати формира побитовото инверсия на всички битове на операнда. примери:

Int S = 0x53c9, маска = 0x356c, r_or, r_and, r_xor, r_inv;

r_or = S | маска; / * R_or = 0x77ed * /

r_and = S&mask; / * R_and = 0x1148 * /

r_xor = S ^ маска; / * R_xor = 0x66a5 * /

Побитови логически операции широко използвани за бързо изолиране модул стойности неподписани тип Int за операнди, които са кратни на две, и за определяне на стойности на един или повече определения брой битове.

Така например, определяне на остатъка от разделяне неподписан вътр операнд 2, 4, 8, 16 и така нататък. Г. Изискване побитовото логично и функционирането на дивидент съответно с маски 0x01, 0x03, 0h07, 0x0F, 0x1f, и така нататък. Г. С други думи, отпуснатите по-млади бита цифри и други бита са поставени на 0. Това е най-бързия начин до остатък.

Int S = 0x05, маска = 0x01;

r_or = smask = 0x05 0x01 = 0x01;

Това е най-бързият начин да се получи остатък.

C ++ съдържа две операции побитова отместване:

<<- сдвиг влево операнда слева от знака операции на число двоичных разрядов справа от знака операции;

>> - право на работа на смени на операнда вляво от целта за броя на нули и единици, вдясно от оператора.

Разтегателни бита се губят, а "се бутат" нула бита.

Shift операнда вляво от 1, 2, 3 или повече бита - най-бързият начин за разделяне на 2, 4, 8, ... Например:

half_adr = АРС >> 1; / * Участък от 2 * /

double_adr = АРС <<1; /* умножение на 2*/

Често се измести операции се извършват за броя или образуването на различни части.

Ограничаване на операции за смяна е, че броят на битовете за преминаване левия операнд може да бъде определен само чрез постоянна или постоянна експресия, т.е.. Е. Експресия изцяло съставени от константи. Поради това, компилаторът ще генерира съобщение за грешка в следния случай:

Int var1, промяна = 5;

var1 = var1 >> смяна;

Свързани статии

Подкрепете проекта - споделете линка, благодаря!