- •Дисциплина: «Информационные технологии»
- •Тема: «Кодирование числовой информации.
- •Принял:
- •Белгород 2014
- •Содержание
- •Цель работы
- •Список индивидуальных заданий
- •Задание 1.
- •Вариант 9.
- •Выполнение работы
- •Задание 2.
- •Задание 3
- •Задание 4
- •Задание 5
- •Задание 6
- •Заключение
- •Список используемой литературы
Задание 4
Для данного целого числа А определенного типа отдельно осуществить следующие виды битовых сдвигов
а) логический
б) арифметический
в) циклический
А = 46 (a: shortint)
а) на 4 бита влево,
б) на 5 бит вправо,
в) на 4 бита вправо.
Переведем данное число в двоичную систему счисления.
4610 = 1011102
При логическом сдвиге нужно просто переместить биты нужное количество вправо или влево.
В нашем случае нужно передвинуть двоичное число 1011102 на 4 бита влево
В результате чего получим:
1011102 shl 4=102=210
При арифметическом сдвиге учитывается знаковый бит числа, в нашем случае это 1. Следовательно получим:
1011102 sar 5 = 1111112=-312
При циклическом сдвиге происходит как бы «круговое» перемещение бит из конца в начало. При сдвиге получим следующие значения:
1011102 ror 4=1110102=-262
Задание 5
Используя арифметические и побитовые операции, осуществите указанные действия, написав необходимую последовательность команд на одном из языков программирования. Привести два примера работы данной программы над разными числами со всеми выкладками в двоичной системе счисления.
Детали реализации:
Во всех таких задачах предполагается, что
а) все используемые числа являются однобайтовыми без знаковыми целыми (если не указано отдельно другое описание числа),
б) отсчет бит в байте начинается с единицы, начиная с младшего бита.
в) при описании маски используется следующая интерпретация:
символ «?» означает ровно один произвольный бит.
символ «*» означает любую последовательность бит.
а) проверить, присутствует ли в данном байте целиком битовая последовательность «111111»,
б) заменить в данном байте отдельные биты так, чтобы данный байт удовлетворял битовой маске «??10??10».
Задание а
Так как мы используем целое однобайтовое число без знака то битовой последовательности «111111» удовлетворяет только число 1510 или F16.
Следовательно, нам нужно сравнить какое-либо число с исходным числом. На языке программирования Pascal это будет выглядеть следующим образом:
Задание б
Для того чтобы проверить удовлетворяет данный байт данной битовой маске воспользовались логическим умножением проверяемого числа на число 100010 = 2216
Затем выполним сравнение данного числа и получим следующий результат:
Задание 6
Для заданного IP адреса и маски подсети рассчитать следующие параметры (см. дополнительную теоретическую часть):
а) адреса хостов в данной подсети (минимальный/максимальный IP),
б) адрес подсети,
в) число хостов,
г) широковещательный адрес (Broadcast),
д) префикс сети.
IP: 148.200.199.250, маска подсети: 255.255.255.240.
Выполнение:
Переведем IP адрес и маску подсети в двоичный формат, получим: маска подсети - 11111111.11111111.11111111.11110000; IP адрес – 10010100.11001000.11000111.11111010.
Определили адрес подсети путем логического умножения маски подсети на IP адрес, получили: 10010100.11001000.11000111.111100002 или 148.200.199.24010.
Префикс сети - это количество единиц в двоичном коде маски подсети, в данном случае префикс сети равен 28.
Для нахождения широковещательного адреса применим побитовое сложение IP адреса и инверсированной маски подсети, получим: 10010100.11001000.11000111.111101012 или 148.200.199.24510.
Максимальный и минимальный адрес хостов получается путем прибавления единицы к адресу подсети и вычитании единицы из широковещательного адреса, получили: 148.200.199.241 и 148.200.199.244соответственно.
Число хостов получается из разности максимального и минимального адреса хостов и равен: 3.
