🗊Презентация Побитовые (поразрядные) операторы

Нажмите для полного просмотра!
Побитовые (поразрядные) операторы, слайд №1Побитовые (поразрядные) операторы, слайд №2Побитовые (поразрядные) операторы, слайд №3Побитовые (поразрядные) операторы, слайд №4Побитовые (поразрядные) операторы, слайд №5Побитовые (поразрядные) операторы, слайд №6Побитовые (поразрядные) операторы, слайд №7Побитовые (поразрядные) операторы, слайд №8Побитовые (поразрядные) операторы, слайд №9Побитовые (поразрядные) операторы, слайд №10Побитовые (поразрядные) операторы, слайд №11Побитовые (поразрядные) операторы, слайд №12Побитовые (поразрядные) операторы, слайд №13Побитовые (поразрядные) операторы, слайд №14

Вы можете ознакомиться и скачать презентацию на тему Побитовые (поразрядные) операторы. Доклад-сообщение содержит 14 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Побитовые (поразрядные) операторы
Описание слайда:
Побитовые (поразрядные) операторы

Слайд 2





Поразрядные операции
В отличие от многих других языков программирования в С определен полный набор поразрядных операций. Это обусловлено тем, что С был задуман как язык, призванный во многих приложениях заменить ассемблер, который способен оперировать битами данных
Поразрядные операции — это тестирование (проверка), сдвиг или присвоение значений отдельным битам данных
Поразрядные операции осуществляются над ячейками памяти, содержащими данные типа char или int. Данные типа float, double, long double, void или другие более сложные не могут участвовать в поразрядных операциях
Описание слайда:
Поразрядные операции В отличие от многих других языков программирования в С определен полный набор поразрядных операций. Это обусловлено тем, что С был задуман как язык, призванный во многих приложениях заменить ассемблер, который способен оперировать битами данных Поразрядные операции — это тестирование (проверка), сдвиг или присвоение значений отдельным битам данных Поразрядные операции осуществляются над ячейками памяти, содержащими данные типа char или int. Данные типа float, double, long double, void или другие более сложные не могут участвовать в поразрядных операциях

Слайд 3





Поразрядные операторы
Описание слайда:
Поразрядные операторы

Слайд 4





Таблицы истинности 
Поразрядные операции И, ИЛИ, НЕ описываются теми же таблицами истинности, что и логические операции 
Поразрядные операции выполняются над отдельными разрядами (битами) операндов
Операция "исключающее ИЛИ" имеет следующую таблицу истинности:
Описание слайда:
Таблицы истинности Поразрядные операции И, ИЛИ, НЕ описываются теми же таблицами истинности, что и логические операции Поразрядные операции выполняются над отдельными разрядами (битами) операндов Операция "исключающее ИЛИ" имеет следующую таблицу истинности:

Слайд 5





Применение поразрядных операторов
при программировании драйверов устройств, таких как модемы
при программировании  процедур, выполняющих операции над файлами
при разработке стандартных программ обслуживания принтера
Описание слайда:
Применение поразрядных операторов при программировании драйверов устройств, таких как модемы при программировании процедур, выполняющих операции над файлами при разработке стандартных программ обслуживания принтера

Слайд 6





Побитовый оператор И: &
Операция & может быть использована для очищения (сбрасывания значения) бита
Любой бит одного из операндов, равный 0, обнуляет значение соответствующего бита в результате
Например, следующая функция читает символ из порта модема и обнуляет бит контроля четности: 
char get_char_from_modem(void) 
{ 
	char ch; 
	ch = read_modem(); /* чтение символа из порта модема */ 
return(ch & 127); 
} 
Бит контроля четности, находящийся в 8-м разряде байта, обнуляется с помощью операции И. При этом в качестве второго операнда выбирается число, имеющее 1 в разрядах от 1 до 7, и 0 в 8-м разряде. Именно таким числом и является 127, поскольку все биты двоичного представления числа 127, кроме старшего, равны 1. Выражение ch & 127 означает попарное применение операции И ко всем битам, составялющим значение переменной ch, и битам числа 127. В результате все биты, кроме старшего,  остаются без изменения, а старший обнуляется: 
Бит контроля четности  - 8 бит
  1100 0001     переменная ch содержит символ 'A' с битом четности
  0111 1111     двоичное представление числа 127
& ---------     поразрядная операция И
  0100 0001     символ 'A' с обнуленным битом контроля четности
Описание слайда:
Побитовый оператор И: & Операция & может быть использована для очищения (сбрасывания значения) бита Любой бит одного из операндов, равный 0, обнуляет значение соответствующего бита в результате Например, следующая функция читает символ из порта модема и обнуляет бит контроля четности: char get_char_from_modem(void) { char ch; ch = read_modem(); /* чтение символа из порта модема */ return(ch & 127); } Бит контроля четности, находящийся в 8-м разряде байта, обнуляется с помощью операции И. При этом в качестве второго операнда выбирается число, имеющее 1 в разрядах от 1 до 7, и 0 в 8-м разряде. Именно таким числом и является 127, поскольку все биты двоичного представления числа 127, кроме старшего, равны 1. Выражение ch & 127 означает попарное применение операции И ко всем битам, составялющим значение переменной ch, и битам числа 127. В результате все биты, кроме старшего, остаются без изменения, а старший обнуляется: Бит контроля четности - 8 бит 1100 0001 переменная ch содержит символ 'A' с битом четности 0111 1111 двоичное представление числа 127 & --------- поразрядная операция И 0100 0001 символ 'A' с обнуленным битом контроля четности

Слайд 7





Поразрядная операция ИЛИ:|
Поразрядная операция ИЛИ применяется для установки необходимых битов в 1
В следующем примере выполняется операция 128 | 3: 
1000 0000     двоичное представление числа 128  
0000 0011     двоичное представление числа 3
| ---------         поразрядная операция ИЛИ 
1000 0011     результат
Описание слайда:
Поразрядная операция ИЛИ:| Поразрядная операция ИЛИ применяется для установки необходимых битов в 1 В следующем примере выполняется операция 128 | 3: 1000 0000 двоичное представление числа 128 0000 0011 двоичное представление числа 3 | --------- поразрядная операция ИЛИ 1000 0011 результат

Слайд 8





Операция исключающего ИЛИ (XOR): ^
Операция исключающего ИЛИ устанавливает бит результата в 1, если соответствующие биты операндов различны
В следующем примере выполняется операция 127 ^ 120: 
0000 0011     двоичное представление числа 127  
0111 1000     двоичное представление числа 120
^ ---------        поразрядная операция XOR  
0000 0111     результат 
Необходимо помнить, что результат логической операции всегда равен 0 или 1. В то же время результатом поразрядной операции может быть любое значение, которое, как видно из предыдущих примеров, не обязательно равно 0 или 1.
Описание слайда:
Операция исключающего ИЛИ (XOR): ^ Операция исключающего ИЛИ устанавливает бит результата в 1, если соответствующие биты операндов различны В следующем примере выполняется операция 127 ^ 120: 0000 0011 двоичное представление числа 127 0111 1000 двоичное представление числа 120 ^ --------- поразрядная операция XOR 0000 0111 результат Необходимо помнить, что результат логической операции всегда равен 0 или 1. В то же время результатом поразрядной операции может быть любое значение, которое, как видно из предыдущих примеров, не обязательно равно 0 или 1.

Слайд 9






Результат логической операции всегда равен 0 или 1
Результат поразрядной операции может быть любое равен любому целому числу, не обязательно равно 0 или 1.
Описание слайда:
Результат логической операции всегда равен 0 или 1 Результат поразрядной операции может быть любое равен любому целому числу, не обязательно равно 0 или 1.

Слайд 10





Поразрядные операторы сдвига >> и << 
Поразрядные операторы сдвига >> и << смещают все биты переменной вправо или влево на указанное количество разрядов
Общая форма оператора сдвига вправо: 
переменная >> количество_разрядов 
Общая форма оператора сдвига влево: 
переменная << количество_разрядов 
Как только сдвигаемые биты достигают края, с противоположного конца появляются нули
Если число типа signed int отрицательно, то при сдвиге вправо левый конец заполняется единицами, так что знак числа сохраняется
Если биты исчезают на одном краю числа, они не появятся на другом
Поразрядные операции сдвига очень полезны при декодировании информации, поступающей с внешнего устройства
Побитовые операторы сдвига можно использовать для быстрого умножения или деления целых чисел: сдвиг на один бит вправо делит число на 2, а на один бит влево — умножает на 2
Описание слайда:
Поразрядные операторы сдвига >> и << Поразрядные операторы сдвига >> и << смещают все биты переменной вправо или влево на указанное количество разрядов Общая форма оператора сдвига вправо: переменная >> количество_разрядов Общая форма оператора сдвига влево: переменная << количество_разрядов Как только сдвигаемые биты достигают края, с противоположного конца появляются нули Если число типа signed int отрицательно, то при сдвиге вправо левый конец заполняется единицами, так что знак числа сохраняется Если биты исчезают на одном краю числа, они не появятся на другом Поразрядные операции сдвига очень полезны при декодировании информации, поступающей с внешнего устройства Побитовые операторы сдвига можно использовать для быстрого умножения или деления целых чисел: сдвиг на один бит вправо делит число на 2, а на один бит влево — умножает на 2

Слайд 11





Умножение и деление операторами сдвига
Описание слайда:
Умножение и деление операторами сдвига

Слайд 12





Пример применения операторов сдвига. 
#include <stdio.h>
#include <conio.h>
#include "locale.h"
int main(void)
{
  setlocale(LC_ALL, "rus"); 
	unsigned int i;
  int j;
  i = 1;
  /* сдвиг влево */
  for(j=0; j<4; j++) {
    i = i << 1;  /* сдвиг i влево на 1 разряд, что  равносильно умножению на 2 */
    printf("Сдвиг влево на %d разр.: %d\n", j, i);
  }
  /* сдвиг вправо */
  for(j=0; j<4; j++) {
    i = i >> 1;  /* сдвиг i вправо на 1 разряд, что
                    равносильно делению на 2 */
    printf("Сдвиг вправо на %d разр.: %d\n", j, i);
  }
getch();
  return 0;
}
Описание слайда:
Пример применения операторов сдвига. #include <stdio.h> #include <conio.h> #include "locale.h" int main(void) { setlocale(LC_ALL, "rus"); unsigned int i; int j; i = 1; /* сдвиг влево */ for(j=0; j<4; j++) { i = i << 1; /* сдвиг i влево на 1 разряд, что равносильно умножению на 2 */ printf("Сдвиг влево на %d разр.: %d\n", j, i); } /* сдвиг вправо */ for(j=0; j<4; j++) { i = i >> 1; /* сдвиг i вправо на 1 разряд, что равносильно делению на 2 */ printf("Сдвиг вправо на %d разр.: %d\n", j, i); } getch(); return 0; }

Слайд 13





Поразрядная операция отрицания ~
Поразрядная операция отрицания (дополнения до единицы) ~ инвертирует состояние каждого бита операнда. 
То есть, 0 преобразует в 1, а 1 — в 0. 
Поразрядные операции часто используются в шифровальных программах. Проделав с дисковым файлом некоторые поразрядные операции, его можно сделать нечитаемым. Простейший способ сделать это — применить операцию отрицания к каждому биту: 
Исходный байт 		0010100 
После 1-го отрицания 	1101011 
После 2-го отрицания 	0010100 
Обратите внимание, при последовательном применении 2-х отрицаний результатом всегда будет исходное число. Таким образом, 1-е отрицание кодирует состояние байта, а 2-е — декодирует
Описание слайда:
Поразрядная операция отрицания ~ Поразрядная операция отрицания (дополнения до единицы) ~ инвертирует состояние каждого бита операнда. То есть, 0 преобразует в 1, а 1 — в 0. Поразрядные операции часто используются в шифровальных программах. Проделав с дисковым файлом некоторые поразрядные операции, его можно сделать нечитаемым. Простейший способ сделать это — применить операцию отрицания к каждому биту: Исходный байт 0010100 После 1-го отрицания 1101011 После 2-го отрицания 0010100 Обратите внимание, при последовательном применении 2-х отрицаний результатом всегда будет исходное число. Таким образом, 1-е отрицание кодирует состояние байта, а 2-е — декодирует

Слайд 14





Пример использования операции отрицания 
В следующем примере оператор отрицания используется в функции шифрования символа:
#include <stdio.h>
#include <conio.h>
#include "locale.h"
int main(void)
{
  setlocale(LC_ALL, "rus"); 
char ch;
scanf(«%c", &ch);
printf(«%c",~ch); /* операция отрицания */
getch();
  return 0;
}
Описание слайда:
Пример использования операции отрицания В следующем примере оператор отрицания используется в функции шифрования символа: #include <stdio.h> #include <conio.h> #include "locale.h" int main(void) { setlocale(LC_ALL, "rus"); char ch; scanf(«%c", &ch); printf(«%c",~ch); /* операция отрицания */ getch(); return 0; }



Похожие презентации
Mypresentation.ru
Загрузить презентацию