лаба ит 5
.pdf3.4 Задание 4
Для данного целого числа А определенного типа отдельно осуществить следующие виды битовых сдвигов а) логический б) арифметический в) циклический
А = 46 (a: shortint)
а) на 4 бита влево, б) на 5 бит вправо, в) на 4 бита вправо.
Переведем данное число в двоичную систему счисления.
4610 = 1011102
a)При логическом сдвиге нужно просто переместить биты нужное количество вправо или влево.
Внашем случае нужно передвинуть двоичное число 1011102 на 4 бита влево
Врезультате чего получим:
1011102 shl 4=102=210
b)При арифметическом сдвиге учитывается знаковый бит числа, в нашем случае это 1. Следовательно получим:
1011102 sar 5 = 1111112=-312
c)При циклическом сдвиге происходит как бы «круговое» перемещение бит из конца в начало. При сдвиге получим следующие значения: 1011102 ror 4=1110102=-262
11
3.5 Задание 5
Используя арифметические и побитовые операции, осуществите указанные действия, написав необходимую последовательность команд на одном из языков программирования. Привести два примера работы данной программы над разными числами со всеми выкладками в двоичной системе счисления. Детали реализации:
Во всех таких задачах предполагается, что а) все используемые числа являются однобайтовыми без знаковыми целыми
(если не указано отдельно другое описание числа), б) отсчет бит в байте начинается с единицы, начиная с младшего бита.
в) при описании маски используется следующая интерпретация:
символ «*» означает любую последовательность бит.
а) проверить, присутствует ли в данном байте целиком битовая последовательность «111111»,
б) заменить в данном байте отдельные биты так, чтобы данный байт удовлетворял битовой маске «??10??10».
Задание а Так как мы используем целое однобайтовое число без знака то битовой
последовательности «111111» удовлетворяет только число 1510 или F16. Следовательно, нам нужно сравнить какое-либо число с исходным числом.
На языке программирования Pascal это будет выглядеть следующим образом:
12
Задание б
Для того чтобы проверить удовлетворяет данный байт данной битовой
маске воспользовались логическим умножением проверяемого числа на число
100010 = 2216
Затем выполним сравнение данного числа и получим следующий результат:
13
3.6 Задание 6
Для заданного IP адреса и маски подсети рассчитать следующие параметры (см. дополнительную теоретическую часть):
а) адреса хостов в данной подсети (минимальный/максимальный IP), б) адрес подсети, в) число хостов,
г) широковещательный адрес (Broadcast), д) префикс сети.
IP: 148.200.199.250, маска подсети: 255.255.255.240.
Выполнение:
1)Переведем IP адрес и маску подсети в двоичный формат, получим: маска подсети - 11111111.11111111.11111111.11110000; IP адрес –
10010100.11001000.11000111.11111010.
2)Определили адрес подсети путем логического умножения маски подсети на IP адрес, получили: 10010100.11001000.11000111.111100002 или
148.200.199.24010.
3)Префикс сети - это количество единиц в двоичном коде маски подсети,
в данном случае префикс сети равен 28.
4)Для нахождения широковещательного адреса применим побитовое сложе-
ние IP адреса и инверсированной маски подсети, получим: 00000000.00000000.00000000.000000102 или 0.0.0.210.
5)Максимальный и минимальный адрес хостов получается путем прибавле-
ния единицы к адресу подсети и вычитании единицы из широковещатель-
ного адреса, получили: 148.200.199.241 и 0.0.0.1 соответственно.
6)Число хостов получается из разности максимального и минимального адреса хостов и равен: 2496186352.
14
Заключение
Следуя цели данной лабораторной работы, были изучены различные число-
вые форматы целых и вещественных чисел, а также правила выполнения раз-
личных арифметических и логических операций над ними. Были закреплены теоритические и практические знания по применению побитовых операций над числами для проверки определенных свойств числа.
15
Список используемой литературы
1.Лекционные материалы.
2.http://kolonitsky.org/blog/2011/05/bitmask-into/
3.http://www.softelectro.ru/ieee754.html
4.https://ru.wikipedia.org/wiki/%D7%E8%F1%EB%EE_%E4%E2%EE%E9%ED%EE %E9_%F2%EE%F7%ED%EE%F1%F2%E8
5.https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE_%D1 %81_%D0%BF%D0%BB%D0%B0%D0%B2%D0%B0%D1%8E%D1%89%D0%B5%D0 %B9_%D0%B7%D0%B0%D0%BF%D1%8F%D1%82%D0%BE%D0%B9
6.https://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE_%D 0%BF%D0%BE%D0%BB%D0%BE%D0%B2%D0%B8%D0%BD%D0%BD%D0%BE% D0%B9_%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D0%B8
7.
16
17