Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаба ит 5

.pdf
Скачиваний:
18
Добавлен:
16.01.2016
Размер:
445.02 Кб
Скачать

3.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