КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Void main(void). Поразрядные операции
Адресные операции Void main(void) Побитовые операции Поразрядные операции Операции отношения < — меньше; <= — меньше или равно; > — больше; >= — больше или равно; == — равно; != — не равно. Операции отношения показаны в примере 4.3. Их используют для сравнения в условных выражениях, например: (a>0), (‘a’==’A’), (‘a’!=’A’), (!x) и т.д. Если условие выполняется, то результатом выражения является “истина”, иначе — “ложь”. << — сдвиг влево; >> — сдвиг вправо. & — и (AND); | — или (OR); ^ — исключающее или (XOR); ~ — отрицание (NOT); — — изменение знака. Для того, чтобы разобраться, как работают побитовые и поразрядные операции, надо выполнить пример 4.4. Наибольшую сложность может вызвать побитовая операция “—“ — изменение знака. Она производится за два шага: вначале число инвертируется, а затем к нему добавляется единица.
//Пример 4.4. // Поразрядные и побитовые операции #include <stdio.h> { int a,b,c; char *format1,*format2; format1 = " %04X %s %04X = %04X \n"; format2 = " %c%04X = %04X \n"; a = 0x0FF0; b = 0xFF00; printf(format2,'=',a,b); c = a << 4; printf(format1,a,"<<",4,c); c = a >> 4; printf(format1,a,">>",4,c); c = a & b; printf(format1,a,"& ",b,c); c = a | b; printf(format1,a,"| ",b,c); c = a ^ b; printf(format1,a,"^ ",b,c); c = ~a; printf(format2,'~',a,c); c = - a; printf(format2,'-',a,c); } Адресные операции чаще всего используются для работы с указателями (подробнее см. разделы “Указатели” и “Функции форматного ввода — вывода”). Операция “условие” Операция “условие” — это единственная операция языка С, имеющая три операнда. Форма ее записи следующая:
(выражение 1)? (выражение 2): (выражение 3);.
Порядок выполнения таков: вначале вычисляется выражение 1 (это может быть любая операция); если результатом его является число, не равное нулю, что равносильно “истине”, то вычисляется выражение 2 и результатом операции “условие” будет значение выражения 2; если значение выражения 1 равно нулю (“ложь”), то вычисляется выражение 3 и его значение будет результатом операции, то есть в любом случае вычисляется одно из двух выражений: (выражение 1) или (выражение 2). Варианты использования операции “условие” показаны в примере 4.5.
//Пример 4.5. //Операция - условие (b1)? b2:b3; #include <stdio.h> { int a,b,max,min,abs; float ratio; printf("Введите два целых числа "); scanf("%d %d",&a,&b); min=(a<b)? a: b; printf("Минимальное число равно %d\n",min); max=(a>b)? a: b; printf("Максимальное число равно %d\n",max); (b)? printf("Отношение a к b равно %5.2f\n",float(a)/float(b)) :printf("Деление на нуль невозможно\n"); a=-b; abs=(a>0)? a: -a; printf("Абсолютное значение равно %d\n",abs); }
В примере 4.5 можно ввести макрос #define MIN(x,y) (((x) > (y))? (x): (y)) или #define MAX(x,y) (((x) < (y))? (x): (y)) Операция sizeof() Операция sizeof() имеет две формы: 1) sizeof(тип). Результатом является целочисленное значение величины типа в байтах; 2) sizeof(выражение). Значение выражения не вычисляется, но определяется его тип и количество байт под этот тип. Оба варианта показаны в примере 4.6.
//Пример 4.6. // Определение объема памяти, занимаемой переменной и массивом // Вычисление количества элементов массива #include <stdio.h>
Дата добавления: 2014-12-27; Просмотров: 364; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |